Repository navigation
feat(bigtable): add Cloud Bigtable (BTQL) dialect guides, generator, and hotels fixture #85
Workflow file for this run
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: Sync MCP version pin | |
| # release-please bumps `$.version` in the Claude Code plugin.json and the | |
| # Antigravity-facing root gemini-extension.json but cannot do in-string | |
| # substitution to also bump the `@<version>` suffix inside their uvx args. | |
| # This workflow listens for release-please PRs and amends them with the | |
| # corresponding args[0] updates, so each released payload pins users to a | |
| # matching MCP server version atomically. | |
| on: | |
| pull_request: | |
| branches: [main] | |
| types: [opened, synchronize, reopened] | |
| paths: | |
| - "plugin/.claude-plugin/plugin.json" | |
| - "gemini-extension.json" | |
| - "plugin/plugin.json" | |
| - "plugin/mcp.json" | |
| - "plugin/mcp_config.json" | |
| permissions: | |
| contents: write | |
| pull-requests: read | |
| jobs: | |
| sync: | |
| if: startsWith(github.head_ref, 'release-please--') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Rewrite args[0] to match each manifest's version | |
| run: | | |
| set -euo pipefail | |
| # Manifests that carry their own $.version. | |
| for FILE in plugin/.claude-plugin/plugin.json gemini-extension.json; do | |
| VERSION=$(jq -r '.version' "$FILE") | |
| PIN="google-cloud-db-context-engineering@${VERSION}" | |
| jq --arg pin "$PIN" \ | |
| '.mcpServers["db-context-engineering"].args[0] = $pin' \ | |
| "$FILE" > "$FILE.tmp" | |
| mv "$FILE.tmp" "$FILE" | |
| done | |
| # The Agent Plugins mcp.json and the Antigravity mcp_config.json have | |
| # no $.version of their own; source it from the sibling plugin.json | |
| # (bumped by release-please) so the pin stays atomic with the payload. | |
| MCP_VERSION=$(jq -r '.version' plugin/plugin.json) | |
| PIN="google-cloud-db-context-engineering@${MCP_VERSION}" | |
| for FILE in plugin/mcp.json plugin/mcp_config.json; do | |
| jq --arg pin "$PIN" \ | |
| '.mcpServers["db-context-engineering"].args[0] = $pin' \ | |
| "$FILE" > "$FILE.tmp" | |
| mv "$FILE.tmp" "$FILE" | |
| done | |
| - name: Commit if changed | |
| env: | |
| PR_AUTHOR_LOGIN: ${{ github.event.pull_request.user.login }} | |
| PR_AUTHOR_ID: ${{ github.event.pull_request.user.id }} | |
| run: | | |
| FILES="plugin/.claude-plugin/plugin.json gemini-extension.json plugin/mcp.json plugin/mcp_config.json" | |
| if git diff --quiet -- $FILES; then | |
| echo "args[0] already in sync; nothing to do." | |
| exit 0 | |
| fi | |
| git config user.name "$PR_AUTHOR_LOGIN" | |
| git config user.email "${PR_AUTHOR_ID}+${PR_AUTHOR_LOGIN}@users.noreply.github.com" | |
| git add $FILES | |
| git commit -m "chore: sync MCP server version pin in plugin manifests" | |
| git push |