Skip to content

Commit ab03888

Browse files
authored
docs: document the Release PR check approval step (#48)
Co-authored-by: tbaur <tbaur@users.noreply.github.com>
1 parent 1e4ba8c commit ab03888

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

RELEASING.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,19 @@ git tag + GitHub Release notes only.
3131
- creates the `vX.Y.Z` git tag,
3232
- publishes a GitHub Release with the changelog notes.
3333

34-
A release therefore reduces to: merge the code PR(s), then merge the Release PR.
34+
A release therefore reduces to: merge the code PR(s), approve the Release PR's checks, then merge the Release PR.
35+
36+
## Approve the Release PR checks
37+
38+
The Release PR is authored by `github-actions[bot]`, because `release.yml` passes `github.token` to release-please. GitHub creates its checks but holds them until a user with write access approves.
39+
40+
**Open the Release PR's Checks tab and click "Approve and run" before merging.**
41+
42+
- There is no CLI for this. `POST /actions/runs/{run_id}/approve` is documented for forks from first-time contributors and does not cover this gate.
43+
- The approval does not stick. It is needed on every release, and again whenever release-please updates an open Release PR.
44+
- **Merging without approving turns the runs red.** They finalise as `failure` with zero jobs and no logs. That means nobody approved them, not that anything broke.
45+
46+
This gate arrived with GitHub's [bot-created pull requests change](https://github.blog/changelog/2026-06-11-bot-created-pull-requests-can-run-workflows-if-approved/) and reached these repos in late August 2026. It applies to same-repo branches, not just forks, and has no repository-level opt-out. The only way to remove the step is to author the Release PR as a different identity, which needs a GitHub App or a PAT. Neither is set up here, and the click is cheaper.
3547

3648
## Branch protection
3749

@@ -40,9 +52,7 @@ A release therefore reduces to: merge the code PR(s), then merge the Release PR.
4052
- **Require a pull request before merging** (0 required approvals is fine for a
4153
solo maintainer).
4254
- **Block force-pushes and deletions.**
43-
- **No required status checks on the Release PR.** GitHub does not trigger
44-
workflows for PRs opened by the built-in `GITHUB_TOKEN` (loop prevention), so
45-
a required check would leave every Release PR permanently unmergeable. Code
55+
- **No required status checks on the Release PR.** The Release PR's own checks are held for approval, so a required check there would sit unresolved until someone approves it. Code
4656
PRs still run Tests; review those before merging.
4757

4858
### Actions permission (required once)

0 commit comments

Comments
 (0)