name: Update JS Client Libraries Docs on: workflow_dispatch: inputs: version: description: 'Version that was released (e.g., patch, minor, major, or v2.1.0)' required: true type: string source: description: 'Source of the documentation update' required: false type: string default: 'manual' permissions: pull-requests: write contents: write jobs: update-docs: runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 with: ref: master - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # v4.2.0 name: Install pnpm with: run_install: false - name: Use Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: '.nvmrc' cache: 'pnpm' - name: Install deps run: pnpm install --frozen-lockfile - name: Regenerate JS client libraries tsdoc files working-directory: apps/docs/spec run: | echo "Regenerating tsdoc files for JS client libraries..." echo "Source: ${{ github.event.inputs.source }}" echo "Version: ${{ github.event.inputs.version }}" make - name: Generate new typespec snapshot working-directory: apps/docs run: | echo "Generating new typespec snapshot for review..." npx vitest run --update ./features/docs/Reference.typeSpec.test.ts - name: Validate reference sync id: validate working-directory: apps/docs run: | echo "Running reference documentation validation..." pnpm run validate:references:fix || echo "validation_failed=true" >> $GITHUB_OUTPUT continue-on-error: true - name: Generate PR comment id: comment if: always() working-directory: apps/docs run: | if [ -f sync-report.json ]; then echo "Generating PR comment with validation results..." COMMENT=$(tsx scripts/generate-yaml-suggestions.ts) echo "$COMMENT" > /tmp/pr-comment.md echo "comment_generated=true" >> $GITHUB_OUTPUT else echo "No validation report found, skipping comment generation" echo "comment_generated=false" >> $GITHUB_OUTPUT fi - name: Create pull request id: create-pr uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: 'docs: update js client libraries (${{ github.event.inputs.version }})' title: 'docs: update js client libraries (${{ github.event.inputs.version }})' body: | Updates JS client libraries documentation following stable release. Ran `make` in apps/docs/spec to regenerate tsdoc files. **Details:** - **Version:** `${{ github.event.inputs.version }}` - **Source:** `${{ github.event.inputs.source }}` - **Changes:** Regenerated tsdoc files from latest spec files 🤖 Auto-generated from supabase-js-libs stable release. branch: 'gha/update-js-libs-docs-${{ github.run_number }}' base: 'master' - name: Add validation comment to PR if: steps.comment.outputs.comment_generated == 'true' && steps.create-pr.outputs.pull-request-number != '' uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const fs = require('fs'); const comment = fs.readFileSync('/tmp/pr-comment.md', 'utf8'); // Extract just the comment content const match = comment.match(/([\s\S]*?)/); const commentBody = match ? match[1].trim() : comment; await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: ${{ steps.create-pr.outputs.pull-request-number }}, body: commentBody });