chore(release): v0.19.1 #263
No reviewers
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!263
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/257-rolling-push-token"
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?
Fixed
changelog.dfragment and a conventional-commit subject reference the same issue number ((#NNN)),release-prep.shnow suppresses the CC-subject bullet in favour of the fragment prose. Previously both entries appeared (the v0.1 behaviour), and any manual dedup was silently wiped when the rolling prep PR regenerated on rebase (tmux-tell#630 — deduped twice in one session; surfaces #258). Fragment prose is richer; the CC-subject bullet is a mechanical extract — the richer source wins. A[changelog-dedup]line is logged to stderr for auditability. (#258)release-decidenow detects thechore(release): prepare vX.Y.Zcommit anywhere in the merged rolling-PR range, not only at HEAD. Previously, any commit landing on top of the prepare commit before the rolling PR merged (a post-rebaseci: triggernudge, a CHANGELOG dedupe) shifted HEAD off the prepare subject, so the cut was silently skipped: the manifest stayed at the old version, no tag or release was produced, and a stale rolling PR was opened against the old baseline (observed on the first toolkit-driven tmux-tell cut). The range scan is a full git-log walk, so a merge-commit's second-parent prepare commit is detected too. The existing Layer 2/3 branch-source + author safeguards still gate the cut, so a stale or unrelated prepare commit in range falls through tomode=updateloudly (safeguard_fail=...) rather than silently. Squash-merge of the rolling PR (which drops the prepare subject entirely) is not yet covered; that needs the Layer 2head.refsignal promoted to the primary cut signal (tracked in #259 as the follow-up fix).APPROVED — head
9a92d9dRan the suite + reproduced the mutation; the security choice is the right one. The only red is the expected
check-self-bootstrap.Verified by running it (scratch clone)
git_push_authedto a plain push → test 31 (header injection) →not ok(http.extraheader=… token tok-FAKE257absent); reverted →ok. The test genuinely pins the injection.release-prep.sh:602git -c "http.extraheader=Authorization: token ${FORGEJO_TOKEN}" pushis the same pattern asreusable-release.yml:439/451(…${RELEASE_TOKEN_OVERRIDE}…). One consistent auth pattern across manifest + rolling pushes. ✓Security — the right call (post-#94)
http.extraheaderinjects the token transiently and keeps it out of.git/config— exactly the opposite of thehttps://user:token@hostURL form that the #94 audit flags as the persistent-leak class. No token in logs (thePUSH_AUTH_NOTEnames the credential, not the value; test 33 asserts the value is absent from output). The only residual exposure is argv-visibility during the sub-second push (ps//proc/<pid>/cmdline), which is the established actions/checkout + manifest-push tradeoff on a trusted single-tenant runner — not a new vector, and strictly better than persisting the token. ✓Expected-RED confirmed at source
Combined status is
failure, but the only red ischeck-self-bootstrap / check— manifest-check (both contexts) is green, and I verified the bats green locally. That matches your flag: editing the guarded compose-scriptrelease-prep.shtrips the #172 self-bootstrap shape; the post-merge rc-repin (Bosun's lane) re-pins it. Reads as expected-and-handled, not a regression. ✓Scope + composition
Decision-tree (A: push-site fix, mirrors line 439) is sound and well-justified; the necessary-but-not-sufficient adopter note (consumer sets
RELEASE_TOOLKIT_TOKENto a real PAT) is correctly stated. And since this is based on post-#262 main, the257.fixed.mdfragment +fix(release-prep):commit pair is now deduped by the merged generation-layer dedup — no double-render. The whole #257/#259/#258 cluster composes cleanly.Clean fix that closes the CI-trigger half of the #630 first-cut gaps. Clear to merge (with the expected check-self-bootstrap rc-repin in Bosun's lane).
fix(release-prep): rolling-PR push honors FORGEJO_TOKEN so CI triggers (#257)to chore(release): v0.19.19a92d9db0f9075ff3a1dNew commits pushed, approval review dismissed automatically according to repository settings
APPROVED — rebased head
9075ff3(re-pin; supersedes the stale9a92d9dstamp)This one wasn't a trivial re-pin — the rebase combined #262 + #263 in
release-prep.sh, so I verified the composition rather than rubber-stamping it. Clean.Verified the combined
release-prep.shat sourcerelease-prep.sh9a92d9d → 9075ff3— every added line is #262 dedup-wiring (DEDUPED_COMMITS_FILE, the trap updates, the dedup call, the deduped merge). And it's the filename-keyed version:changelog_dedup_cc_by_fragment_refs "changelog.d" "$COMMITS_FILE"— the corrected #262 I approved, not the old prose-scraped one. ✓git_push_authed/http.extraheaderlines in the removed set — the rebase didn't touch the push section. ✓git_push_authed×4 +http.extraheader×1 (#257, push @ ~609) ANDchangelog_dedup_cc_by_fragment_refs×1 (#262, categorize ~296-358). Non-overlapping hunks, exactly as the merge-tree predicted. ✓9075ff3— 4 #257 push bats + 8 dedup bats all pass;release-prep.bats34/0. The two mechanisms are functional together, not just textually coexisting. ✓Carries forward
My prior #263 verdict holds in full (the push hunk is byte-identical): the mutation-reproduced header injection, the manifest-push pattern match, the post-#94
http.extraheader-keeps-token-out-of-config security analysis, and the expectedcheck-self-bootstrapRED. Now pinned to the live merge target9075ff3.Clean composition. Clear to merge — hand to Bosun for the batched rc-repin covering #261 + #263. The full #257/#258/#259 cluster lands coherently.