fix: enable metadata on apiKey plugin to unblock API key creation (#169) #89
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: SDK Generate | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "apps/server/src/**" | |
| workflow_dispatch: {} | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| generate: | |
| name: Regenerate SDKs | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| # version is read from packageManager field in package.json | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| # Fetch the OpenAPI spec from the deployed production server. | |
| # No local server startup needed — no DB credentials required. | |
| - name: Extract & split OpenAPI spec | |
| env: | |
| API_URL: ${{ vars.API_URL || 'https://api.apollokit.com' }} | |
| run: | | |
| cd packages/sdk-core | |
| pnpm exec tsx scripts/extract-openapi.ts --url "$API_URL" | |
| pnpm exec tsx scripts/split-spec.ts | |
| - name: Generate Server SDK | |
| working-directory: packages/sdk-server-ts | |
| run: pnpm exec openapi-ts | |
| - name: Generate Client SDK | |
| working-directory: packages/sdk-client-ts | |
| run: pnpm exec openapi-ts | |
| - name: Inject x-codeSamples | |
| working-directory: packages/sdk-core | |
| run: pnpm exec tsx scripts/inject-samples.ts | |
| - name: Type check SDKs | |
| run: | | |
| cd packages/sdk-server-ts && pnpm exec tsc --noEmit | |
| cd ../sdk-client-ts && pnpm exec tsc --noEmit | |
| - name: Check for changes | |
| id: diff | |
| run: | | |
| git diff --quiet \ | |
| apps/server/openapi.json \ | |
| packages/sdk-core/specs/ \ | |
| packages/sdk-server-ts/src/generated/ \ | |
| packages/sdk-client-ts/src/generated/ \ | |
| || echo "changed=true" >> "$GITHUB_OUTPUT" | |
| - name: Create PR | |
| if: steps.diff.outputs.changed == 'true' | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| commit-message: "chore: regenerate SDKs from OpenAPI spec" | |
| title: "chore: regenerate SDKs from OpenAPI spec" | |
| body: | | |
| Automated SDK regeneration triggered by server code changes. | |
| This PR updates the generated SDK code in: | |
| - `apps/server/openapi.json` (with `x-codeSamples` injected) | |
| - `packages/sdk-core/specs/` (OpenAPI specs) | |
| - `packages/sdk-server-ts/src/generated/` (Server SDK) | |
| - `packages/sdk-client-ts/src/generated/` (Client SDK) | |
| Review the type changes and merge when ready. | |
| branch: chore/regenerate-sdks | |
| delete-branch: true | |
| labels: sdk,automated |