Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions docs/runbooks/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,15 @@ embedded AskNews skill. It must not contain credentials, `.env` files, tests, or

## Cut a release

Merge the open Release PR (title `chore(main): release X.Y.Z`). Note: the Release PR is opened with
`GITHUB_TOKEN`, and GitHub does not run `pull_request` workflows for such PRs, so CI never reports on
it and the `main` ruleset blocks a normal merge β€” merge it as an admin (`gh pr merge N --squash --admin`).
The commits in it already passed CI on their own PRs. To remove this step, give release-please an
org GitHub App token (`actions/create-github-app-token` β†’ `token:` input); App-created PRs trigger CI
normally. The workflow then:
Merge the open Release PR (title `chore(main): release X.Y.Z`). Note: the Release PR is opened by
`github-actions[bot]` with `GITHUB_TOKEN`. GitHub creates its CI run but holds it for approval: the run
shows "Action required" with no jobs, so the two checks the `main` ruleset requires ("Lint, typecheck,
test, build" and "Node 24 compatibility") never report and the PR stays blocked. Open the run from the
PR's checks or the Actions tab and choose **Approve and run workflows**; once both checks pass, merge
normally. An admin merge (`gh pr merge N --squash --admin`) also works, but it ships the release commit
without CI. To remove the approval step, give release-please an org GitHub App token
(`actions/create-github-app-token` β†’ `token:` input); App-created PRs trigger CI normally. The workflow
then:

1. creates the tag and GitHub Release with the changelog notes;
2. installs dependencies and bundles `dist/` from the committed OpenAPI snapshot;
Expand Down
Loading