branching: release now carries the required check
All checks were successful
PR build (required check) / changes (pull_request) Successful in 7s
secrets-guard / encrypted (pull_request) Successful in 8s
shell-lint / shellcheck (pull_request) Successful in 7s
PR build (required check) / build-frontend (pull_request) Has been skipped
PR build (required check) / build-backend (pull_request) Has been skipped
PR build (required check) / validate-observability (pull_request) Has been skipped
PR build (required check) / gate (pull_request) Successful in 2s

Closed in the order this file prescribes: pr-build.yml learned to fire on
release, #167 confirmed the gate context actually appeared, and only then was
the check required. The warning stays — it still governs a context rename or a
new protected branch, and the failure mode it describes is a 405 with no cause.
This commit is contained in:
Emi Griffith 2026-08-01 17:19:14 -07:00
parent 8eb58dbdbc
commit 14835af3d8

View file

@ -82,15 +82,19 @@ correct" rather than erroring.
3. **Protection.** `forge_branch_protection(branch="dev", apply=true)`, then
`main`, then `release`.
`dev` and `main` get the required check; **`release` does not**, and that is
deliberate. `pr-build.yml` fires only for PRs into `dev` and `main`, so a PR
into `release` reports no status at all — requiring a context nothing
produces would make every production promotion permanently unmergeable, with
**All three** branches get the required check. `release` was the exception
until 2026-08-01: `pr-build.yml` fired only for PRs into `dev` and `main`, so
a PR into `release` reported no status at all, and requiring a context
nothing produces makes every production promotion permanently unmergeable
a 405 that names no cause. This estate has already lost an afternoon to
exactly that, from a single mistyped check name. If you want it closed
properly, do it in this order: add `release` to `pr-build.yml`'s
`on.pull_request.branches`, confirm on a real PR that the context appears,
*then* pass `require_checks_on_release: true`. The other order blocks prod.
exactly that, from a single mistyped check name.
It was closed in the only safe order, and that order still governs any change
to the context name, or a new protected branch: add the branch to
`pr-build.yml`'s `on.pull_request.branches`, confirm **on a real PR** that
the context appears, *then* require it. Confirmed on #167 — the gate reported
`PR build (required check) / gate (pull_request)` — before the check was
enabled. The other order blocks prod.
4. **Stale branches.** `forge_branches()` lists every branch with its age, how
much unmerged work it carries, and a verdict:
- `merged` — nothing on it the trunk lacks. Delete freely.