Skip to content

ci: authenticate release pushes via GitHub App token#52

Merged
aliasunder merged 1 commit into
mainfrom
claude/bootstrap-vault-setup-UP2Ya
May 19, 2026
Merged

ci: authenticate release pushes via GitHub App token#52
aliasunder merged 1 commit into
mainfrom
claude/bootstrap-vault-setup-UP2Ya

Conversation

@aliasunder
Copy link
Copy Markdown
Owner

@aliasunder aliasunder commented May 19, 2026

Summary

  • Adds actions/create-github-app-token@v3 to both release workflows to mint an installation token from the vault-cortex-release GitHub App.
  • Passes the App token to actions/checkout, so git push calls later in the job use the App's auth.
  • The App is on the ruleset bypass list, so direct pushes to main go through without disabling protection.

Why

The default GITHUB_TOKEN cannot be added to ruleset bypass lists — by GitHub design, to prevent any workflow from circumventing protection. The Require code scanning results rule was the immediate blocker (catch-22: CodeQL only scans after a push lands on main), but Require a pull request before merging and Require status checks to pass would also block direct release pushes.

A GitHub App with Contents: write is the official-recommended workaround. The App's installation token is treated as a separate actor that CAN be bypassed by ruleset, scoped per-App, rotatable, and auditable.

Prerequisites (already configured)

  • GitHub App vault-cortex-release created with Contents: read and write and Workflows: read and write, installed on this repo.
  • Repo secrets RELEASE_APP_ID and RELEASE_APP_PRIVATE_KEY populated.
  • App added to the main branch ruleset's bypass list.

Affected workflows

  • manual_release.ymlbump-and-tag job (push of version-bump commit + tag) and release job (changelog push).
  • auto_release.ymlrelease job (changelog push).

Test plan

  • CI green on this PR (no behavior changes for non-release runs).
  • After merge, trigger Manual Release with patch bump → expect v0.15.2 to ship without touching ruleset rules.
  • Verify the release commit + tag land on main and the GitHub release is created.
  • Confirm the CHANGELOG commit also lands (second push in the release job).

https://claude.ai/code/session_01K8eXF8Fe3gjCR5e2ndU2Wo


Generated by Claude Code

Mints an installation token via actions/create-github-app-token@v3 and
passes it to actions/checkout so subsequent git pushes inherit the App's
auth. The App is in the ruleset bypass list, so direct pushes to main
bypass the protection without disabling rules.

Replaces the previous reliance on GITHUB_TOKEN, which cannot be added to
bypass lists by design and was blocked by "Require code scanning results"
on the version-bump and changelog-update pushes.

Requires repo secrets RELEASE_APP_ID and RELEASE_APP_PRIVATE_KEY.

https://claude.ai/code/session_01K8eXF8Fe3gjCR5e2ndU2Wo
@aliasunder aliasunder merged commit 3c0ed73 into main May 19, 2026
5 checks passed
@aliasunder aliasunder deleted the claude/bootstrap-vault-setup-UP2Ya branch May 19, 2026 13:52
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.

2 participants