finish: when the forge refuses a merge for a signing reason, suggest fast-forward-only after its error #478
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#478
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?
Follow-up to #425 item 3.
finishhonors the target repo'sdefault_merge_style. A fast-forward-only style mints no commit at all, so on such a repo the forge never has to sign anything. (A server-side rebase mints no merge commit, but it rewrites every commit and drops the author's own signature, so it is not a fix for signing.), and that is the state on this repo (every merge today landed with the default branch at the work commit's own sha). A repo whose base requires signed commits but whosedefault_merge_styleismergeorrebase-mergestill gets a server-side merge commit the forge signs with its own key or leaves unsigned.Rescoped 2026-09-14
Decision: madtea does not refuse on its own here. The forge enforces its own signing rule. A forge with its own signing key produces a valid, signed merge commit, and madtea must work with that setup. A forge that cannot sign refuses the merge itself.
Ask: when the forge refuses a
finishmerge for a signing reason, keep the forge's error as it is (it is already surfaced verbatim) and add one suggestion after it:fast-forward-onlycreates no merge commit, so the forge has nothing to sign. Suggest only. Never change the merge style and never refuse before the forge does. No madtea-held key, per ADR 0013.Acceptance
fast-forward-onlysuggestion.finishnever refuses a merge on its own for signing reasons, whatever the merge style.Refs #425, #424, ADR 0013.
finish: refuse or steer when the base requires signed commits and default_merge_style would mint an unsigned server-side merge committo finish: when the forge refuses a merge for a signing reason, suggest fast-forward-only after its errorParked: to build this I need the forge's real refusal text for a merge blocked by signing. Only a live probe can give that text (a throwaway repo that requires signed commits, with merge style
merge). The acceptance criteria forbid guessing it.