Skip to content

feat(bigtable): add Cloud Bigtable (BTQL) dialect guides, generator, and hotels fixture #85

feat(bigtable): add Cloud Bigtable (BTQL) dialect guides, generator, and hotels fixture

feat(bigtable): add Cloud Bigtable (BTQL) dialect guides, generator, and hotels fixture #85

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