feat(release): auto-assign manifest follow-up PR to the user who merged the rolling PR #113
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#113
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?
Why
The manifest follow-up PR (
chore(manifest): post-cut bookkeeping for vX.Y.Z) currently opens with no assignee. Under path-α option (3) (required_approvals > 0), this PR sits open waiting for someone to merge it — but nothing in the substrate signals WHO is responsible. The PR just sits.Auto-assigning it to the user who merged the rolling PR (the operator who clicked Gate-1) makes the responsibility-chain visible at the substrate level: "you clicked Gate-1; you're on the hook for the post-cut follow-up." It also surfaces the PR in that operator's Forgejo notifications + assigned-to-me view, which is where they'd naturally look.
Especially useful when:
Less useful but still harmless under option (2) (zero-touch — the manifest PR auto-merges; assignee just becomes a record-keeping detail).
Implementation surface
Small change in
.forgejo/workflows/_release.yml's manifest-PR creation step:mode=cutfires, useforgejo_find_pr_by_merge_sha(already inlib/forgejo-api.sh, used by Layer 2) to look up the rolling PR whose merge_commit_sha matches$GITHUB_SHA..merged_by.login: from the rolling PR JSON.assigneesin the manifest PR create: extendforgejo_create_prto accept assignees, OR callmcp__forgejo__edit_issueafter PR creation to set assignees.Fallback paths (substrate-state-care per §8 Axis A)
The merger-lookup can fail in edge cases. Each path should fall back cleanly:
forgejo_find_pr_by_merge_shareturns empty (race or direct-push-to-main).merged_by.loginis empty (unusual, but possible on direct push)release-botitself (path-α option (2) scenario)The whole feature is BEST-EFFORT — never blocks the cut path.
What this PR (when implemented) does NOT do
Test coverage needed
tests/release-decide.bats(or wherever the manifest-PR-creation tests live) for:.merged_by.login→ manifest PR gets assigneeSequencing
Lightweight feature; can land any time. Composes with #112 (review-gate tradeoff docs) — that issue documents WHEN this feature is most useful (option (3) scenario).
Suggested target: v0.7.x or v0.8.x as part of the pre-v1.0 readiness sweep (#106) — the kind of consumer-UX polish that adoption is likely to surface.
Refs
forgejo_find_pr_by_merge_shainscripts/lib/forgejo-api.sh(already exists, used by Layer 2)PATCH /repos/{owner}/{repo}/issues/{index}acceptsassignees: ["username"]quartermaster referenced this issue2026-06-26 14:52:03 +02:00