Skip to content

ci: adopt the fleet release-PR healer - #472

Merged
forkwright merged 1 commit into
mainfrom
ci/adopt-release-pr-checks
Aug 26, 2026
Merged

ci: adopt the fleet release-PR healer#472
forkwright merged 1 commit into
mainfrom
ci/adopt-release-pr-checks

Conversation

@forkwright

Copy link
Copy Markdown
Owner

Finding

Release PRs here arrive with their required contexts absent rather than red, because
release-please creates them with GITHUB_TOKEN and GitHub raises no workflow-triggering events
for that token. Branch protection holds a PR with a missing context forever.

Evidence

#465 (chore(main): release 0.6.2) sat 8 days at mergeStateStatus: BLOCKED with an empty
statusCheckRollup while five workflow runs waited at action_required. gh api repos/forkwright/akroasis/actions/runs?status=action_required currently returns 51 held runs.

Why this matters

A missing check is worse than a failing one — a red check advertises itself; an absent one looks
exactly like a PR still waiting on CI. Releases stop, and nothing surfaces the cause.

Desired correction

Adopt the reusable healer merged as forkwright/.github#56. This file asks for it and declares
nothing about how it works, so it cannot drift from the other 17 repos that will carry it.

Done when: a subsequent release PR here reaches a non-empty statusCheckRollup without a
human approving runs by hand.

The permissions block is load-bearing

It is not the usual boilerplate. For workflow_call, the caller's permissions is a cap — a
called workflow can only downgrade the token, never upgrade it. A caller declaring the customary
contents: read alone would leave the healer unable to approve a single run, and the only symptom
would be a release that stayed stuck. actions: write approves the held runs; pull-requests: read finds the release PR and its head SHA. Nothing here writes to a PR.

Note

This is the first adopter, deliberately — akroasis is the only repo with an open stuck release PR
right now, so it is where the end-to-end path can actually be observed rather than assumed. The
remaining 17 follow once a run here is read.

Independent of this, #465 is also blocked by a real compile failure that #471 fixes; the two are
unrelated causes on the same PR.

Release PRs here arrive with their required contexts absent rather than red,
because release-please creates them with GITHUB_TOKEN and GitHub raises no
workflow-triggering events for that token. #465 sat 8 days at BLOCKED with an
empty statusCheckRollup while five runs waited at action_required.
The healer lives in forkwright/.github; this file only asks for it.
The permissions block is load-bearing rather than boilerplate: a called
workflow can only DOWNGRADE the caller's token, never upgrade it, so the
customary `contents: read` alone would leave the healer unable to approve a
single run -- and the only symptom would be a release that stayed stuck.
@forkwright
forkwright merged commit db055e9 into mainAug 26, 2026
9 checks passed
@forkwright
forkwright deleted the ci/adopt-release-pr-checks branch August 26, 2026 14:47
Sign up for freeto 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

@forkwright