v0.5.1 sprint: token override + Layer 2 race + stale PR cleanup + branch-protection doc correction (path α dogfood) #88
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#88
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Sprint scope
v0.5.1 substrate-correction sprint — bundles the operator-actions hygiene catches from the v0.5.0 cut + the docs accuracy gap from slice 5. Operator chose path (α) "use release-bot" over path (β) "accept graceful-degradation" on 2026-06-26 for the toolkit's own substrate (existing
release-botuser already provisioned on the instance suggests this was the intended pattern).Items
1. Token override in
_release.yml(the path-α substrate change)Allow
_release.ymlto use a consumer-supplied PAT for the merge operation instead of the syntheticGITHUB_TOKEN. The consumer wires this PAT into their workflowsecrets.RELEASE_TOOLKIT_TOKEN(or similar), and:The fallback to
GITHUB_TOKENpreserves backward compatibility — consumers without the secret keep the graceful-degradation behavior.Requires:
_release.ymlscript change +workflow_callinput declaration for the optional secretdocs/integration.mdupdate explaining the override + how to provision a non-admin bot user (e.g.,release-bot)release.ymlupdated to passsecrets.RELEASE_TOOLKIT_TOKENrelease-botPAT + stores in toolkit repo secretsmainbranch protection: addrelease-bottopush_whitelist_usernames2. Layer 2 race-condition fix (closes #86)
forgejo_find_pr_by_merge_shalookup lags ~8s behind a fresh merge — empirically falsified on the v0.5.0 cut. Surveyor's #64 deferred test coverage was specifically about this.Lean (A) from #86: retry with backoff (3 retries × 5s = 15s budget). Preserves substrate-honest fall-through when retry budget exhausted.
3. Stale rolling PR cleanup after fall-through+later-cut-success (closes #87)
Operator's "stairway to version hell" framing: when Layer 2 fall-through opens a rolling PR + the cut later succeeds, the fall-through-opened rolling PR is left open as confusing stale state.
Lean from #87: defense-in-depth — (a)
_release.ymlcut path closes any open rolling PR matching the just-cut version + (b)release-prep.sh --rolling-modeshort-circuits when manifest already reflects the proposed cut version.4. §Branch protection compatibility doc correction
My slice-5 docs claimed
forgejo-actionscould be whitelisted directly. It can't —forgejo-actionsis a synthetic actor (uid: -2), not a real user; Forgejo'spush_whitelist_usernamesrejects it withuser does not exist. Surveyor's 8701 catch was on the apply_to_admins inversion; the (a) whitelist option as written turned out also to be slightly fictional re: feasibility.Per
feedback_filed_rootcause_is_hypothesis+ AGENTS.md §8 (which already lists 8701 as the worked instance): I asserted the whitelist mechanism without verifying it accepts the actions identity.Correction in v0.5.1 docs:
release-bot), provision its PAT, add it to push_whitelist + use the token override from item 1"5. Test coverage that would have caught this
#64 Layer-2/3 FAIL-path coverage gets implemented as part of v0.5.1 — bundles naturally with #86's fix.
Sequencing
release-botPAT + repo secret + push_whitelistWhat this PR does NOT do
Closes
Refs
Filed 2026-06-26 post-v0.5.0 GA.
engineer referenced this issue2026-06-29 21:05:51 +02:00