Skip to content

docs: record enforced branch protection + GitHub App release flow#19

Merged
bim-ba merged 1 commit into
mainfrom
docs/branch-protection
Jun 29, 2026
Merged

docs: record enforced branch protection + GitHub App release flow#19
bim-ba merged 1 commit into
mainfrom
docs/branch-protection

Conversation

@bim-ba

@bim-ba bim-ba commented Jun 29, 2026

Copy link
Copy Markdown
Owner

Documents the enforcement we just stood up, so the convention "no direct pushes to main" is no longer only prose.

CLAUDE.md → Release & safety

  • Auto-release bullet: PSR now pushes the release commit + tag with a short-lived GitHub App token (App ID 4175048; secrets RELEASE_APP_CLIENT_ID / RELEASE_APP_PRIVATE_KEY) because the default GITHUB_TOKEN cannot bypass the ruleset. Notes the post-release uv.lock lag.
  • Branch → PR bullet → "enforced": main is protected by the Protect main — require CI ruleset (required checks test (3.12) · test (3.13) · gitleaks; no force-push/delete; only the App bypasses). New consequence spelled out: a stale uv.lock (or any red required check) now blocks every merge, so re-lock immediately after a release. Emergency rollback: set the ruleset to disabled.

Scope kept to CLAUDE.md (the home for release/process rules); ARCHITECTURE.md stays the ARCH-1..11 code-structure invariants only.

🤖 Generated with Claude Code

main is now protected by the `Protect main — require CI` ruleset (required
checks test (3.12) / test (3.13) / gitleaks; no force-push/delete). PSR pushes
the release commit past it with a GitHub App token; the default GITHUB_TOKEN
cannot bypass. Note the new consequence that a stale uv.lock blocks all merges,
and the disable-ruleset rollback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@bim-ba bim-ba merged commit 7740588 into main Jun 29, 2026
3 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