fix(release): open release PRs with a real identity so their CI runs - #650
Merged
Conversation
GitHub withholds workflow triggering from GITHUB_TOKEN to prevent recursion, so a pull request opened with it gets no checks at all. This workflow already knew: the block above the bump step measures the cost — openregister#2817 merged with 4 check-runs where neighbouring PRs had 45, roughly 15 such merges fleet-wide on 2026-08-24 — and responded by bounding what the bump may CONTAIN, because calling quality.yml from here would check out the integration branch and report a green describing a different commit. Opening the PR with the org PAT removes the cause instead, and without that objection: we are not calling quality.yml with the wrong ref, we are letting the normal pull_request trigger fire on the pull request's own commit. Measured 2026-08-30: 38 release runs sat at action_required across hermiq, zaakafhandelapp and opencatalogi, waiting for an approval nobody was coming to give. That state reports as status=completed, so it also reads like a dead CI queue when you look at recent completions. Both PR-opening steps change; 'Get merged PR labels' keeps github.token because it only reads. The fallback is deliberate and loud. A secret that does not exist expands to the empty string, and an empty GH_TOKEN would break release PR creation fleet-wide, so the step keeps working — and emits a ::warning:: naming exactly what was lost. Degrading to the unverified path in silence is the failure this change ends. Verified: YAML parses; the inserted guard is valid bash and exercised both ways (warns and continues when the secret is absent, silent when present) without tripping set -e.
rubenvdlinde
force-pushed
the
hotfix/release-pr-identity
branch
from
September 1, 2026 19:37
23397a6 to
b5e77e8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GitHub withholds workflow triggering from
GITHUB_TOKENto prevent recursion, so a pull request opened with it gets no checks at all.This workflow already knew. The block above the bump step measures the cost — openregister#2817 merged with 4 check-runs where neighbouring PRs had 45, roughly 15 such merges fleet-wide on 2026-08-24 — and responded by bounding what the bump may contain, because calling
quality.ymlfrom here would check out the integration branch and report a green describing a different commit.Opening the PR with the org PAT removes the cause instead, and without that objection: we are not calling
quality.ymlwith the wrongref, we are letting the normalpull_requesttrigger fire on the pull request's own commit.What prompted it
Measured 2026-08-30: 38 release runs sat at
action_requiredacross hermiq (17), zaakafhandelapp (14) and opencatalogi (7), waiting for an approval nobody was coming to give.That state also disguises itself.
action_requiredreports asstatus=completed, so a "recent completions" query returns a wall of them and looks like CI has died — it hasn't; those runs never started.The change
Both PR-opening steps now use
secrets.FLEET_DISPATCH_TOKEN.Get merged PR labelskeepsgithub.token, since it only reads.The fallback is deliberate, and loud. A secret that does not exist expands to the empty string, and an empty
GH_TOKENwould break release PR creation fleet-wide. So the step keeps working and emits a::warning::naming exactly what was lost:Degrading to the unverified path in silence is the failure this change exists to end. I could not verify the secret exists — listing org secrets needs
admin:org, which this account lacks — so the fallback is doing real work rather than being defensive decoration.Verification
set -e.secrets: inherit, so an org-level secret reaches the reusable workflow.🤖 Generated with Claude Code