Skip to content

docs: document branch protection and the release PR's manual step - #8

Merged
TheHefty merged 1 commit into
mainfrom
docs/branch-protection
Aug 3, 2026
Merged

docs: document branch protection and the release PR's manual step#8
TheHefty merged 1 commit into
mainfrom
docs/branch-protection

Conversation

@TheHefty

@TheHefty TheHefty commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Records what cutting 1.0.2 cost to find out. None of it is visible from the config files themselves, and all of it would have to be rediscovered the same way.

  • main is protected — which is also why this repo is public, since branch protection is a paid feature on private repos (the API answers Upgrade to GitHub Pro or make this repository public). ci-green is the single required check, because the per-stack job names come from a matrix over ls stacks and change whenever a stack is added or removed.
  • Require branches to be up to date before merging is off on purpose: release-please compares release notes rather than files, so it leaves the release branch behind main whenever a chore/ci/docs commit lands (PR remained the same). With that setting on, every release PR would be born unmergeable.
  • A release PR gets no CI run at all. Workflows are not triggered by events caused by the GITHUB_TOKEN, so ci-green never reports and the PR sits BLOCKED with zero failing checks to explain it. Closing and reopening it from a user account creates the run; a PAT would remove the step permanently, at the cost of a secret to rotate.
  • A pull_request run uses the workflow file from the head branch, not from the merge commit — so a check added to main after the release branch was cut never appears on that PR, and the branch has to be recreated.

🤖 Generated with Claude Code

Records what the 1.0.2 release cost to find out, none of which is visible
from the config files themselves:

- main is protected, which is also why this repo is public (branch protection
  is a paid feature on private repos), and ci-green is the single required
  check because the per-stack job names come from a matrix over `ls stacks`;
- "require branches to be up to date" is off on purpose, since release-please
  leaves the release branch behind main whenever the notes do not change;
- a release PR gets no CI run at all, because workflows are not triggered by
  GITHUB_TOKEN events, so a required check that never reports leaves it
  BLOCKED with nothing failing to look at. Close and reopen it, or give
  release-please a PAT;
- a pull_request run uses the workflow file from the head branch, not the
  merge commit, so a check added to main after the release branch was cut
  never shows up on that PR.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@TheHefty
TheHefty merged commit e4b3f39 into main Aug 3, 2026
15 checks passed
@TheHefty
TheHefty deleted the docs/branch-protection branch August 3, 2026 14:17
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