You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- publishes a GitHub Release with the changelog notes.
33
33
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.
35
47
36
48
## Branch protection
37
49
@@ -40,9 +52,7 @@ A release therefore reduces to: merge the code PR(s), then merge the Release PR.
40
52
-**Require a pull request before merging** (0 required approvals is fine for a
41
53
solo maintainer).
42
54
-**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
0 commit comments