Skip to content

bot: merging is deploying - #45

Merged
Na5co merged 1 commit into
mainfrom
claude/deploy-bot
Sep 23, 2026
Merged

Na5co merged 1 commit into
mainfrom
claude/deploy-bot

Conversation

@Na5co

@Na5co Na5co commented Sep 23, 2026

Copy link
Copy Markdown
Owner

The hosted app drifted behind main three times this afternoon, because deploying was something I had to remember to do. Now a push to main that touches bot/, src/ or the manifests builds the image with Cloud Build and rolls out a Cloud Run revision.

It verifies the rollout. After gcloud run deploy the job polls /health and fails if the new revision never answers — a revision that cannot answer is a revision that is not reviewing anyone's pull requests, and a silent failure there is exactly the kind you find out about from a user.

Keyless authentication. GitHub mints an OIDC token; Workload Identity Federation exchanges it for a short-lived credential. There is no service-account key in a GitHub secret to leak or rotate. The pool's attribute condition binds it to Na5co/polygo, and the deployer service account holds only what it needs: run.admin, cloudbuild.builds.editor, artifactregistry.writer, iam.serviceAccountUser, storage.objectAdmin.

tests/release_layout.rs asserts the workflow keeps using WIF, never gains a credentials_json, and keeps the health check. bot/README.md documents both this and the manual path for a rollback.

Everything on the Google side already exists (pool, provider, service account, bindings), so this works the moment it merges — workflow_dispatch is there to prove it without waiting for a code change.

🤖 Generated with Claude Code

The hosted app drifted behind main three times in one afternoon because a
deploy was something I had to remember. A push to main touching bot/, src/ or
the manifests now builds the image and rolls out a revision, and fails the job
if that revision cannot answer /health — a bot that cannot answer is a bot
that is not reviewing anything.

Keyless: GitHub mints an OIDC token, Workload Identity Federation trades it
for a short-lived credential, and the pool is bound to this repository. No
service-account key exists to leak, and release_layout asserts none is ever
added.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Na5co
Na5co merged commit d15129e into main Sep 23, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant