fix(repos): madt_repos edit lacks fast-forward-only + rebase-explicit merge flags and mislabels allow_rebase_update #432

Closed
opened 2026-08-17 18:54:19 +00:00 by hexajon · 0 comments
Owner

Problem

Setting a repo to fast-forward-only merges is not expressible through madt_repos edit. Standing up signed-commit enforcement across the sixfold-space repos, the merge-style config had to go out as raw madt_api_call PATCH /repos/{owner}/{repo}.

Three concrete gaps in the madt_repos edit merge fields:

  1. Missing allow_fast_forward_only_merge. There is no way to enable the fast-forward-only merge style. This is the only forge-side merge style that preserves an author signature, because it mints no new commit. So it is exactly what a require_signed_commits repo needs.
  2. Missing allow_rebase_explicit (rebase then create a merge commit). The full Gitea merge-style set is not covered.
  3. allow_rebase_update is mislabeled. Its description reads "Allow fast-forward-only merging". But allow_rebase_update is the Gitea flag for "update a PR branch by rebase", a different setting. Reaching for ff-only, this wrong param looks correct right up until the merge behaves differently.

Why it matters

require_signed_commits plus PR merges only works with fast-forward-only (or a locally-signed merge). Any other server-side style mints an unsigned commit that the branch rule then rejects. Enabling signing on the org repos needed default_merge_style: "fast-forward-only" plus allow_fast_forward_only_merge: true and the other styles off. madt_repos edit could not express that, so it went out as raw API.

Fix

  • Add allow_fast_forward_only_merge and allow_rebase_explicit to madt_repos edit.
  • Correct the allow_rebase_update description to its real meaning (update a PR branch by rebase), not fast-forward-only merging.
  • A short note that default_merge_style: "fast-forward-only" pairs with signed-commit enforcement would help the next person.
  • #431 - branch protection is undiscoverable from madt_repos; same shape of MCP-surface gap, and it drove the same raw-API fallback.
  • #424, #422, #392 - commit signing.
## Problem Setting a repo to fast-forward-only merges is not expressible through `madt_repos edit`. Standing up signed-commit enforcement across the sixfold-space repos, the merge-style config had to go out as raw `madt_api_call PATCH /repos/{owner}/{repo}`. Three concrete gaps in the `madt_repos edit` merge fields: 1. **Missing `allow_fast_forward_only_merge`.** There is no way to enable the fast-forward-only merge style. This is the only forge-side merge style that preserves an author signature, because it mints no new commit. So it is exactly what a `require_signed_commits` repo needs. 2. **Missing `allow_rebase_explicit`** (rebase then create a merge commit). The full Gitea merge-style set is not covered. 3. **`allow_rebase_update` is mislabeled.** Its description reads "Allow fast-forward-only merging". But `allow_rebase_update` is the Gitea flag for "update a PR branch by rebase", a different setting. Reaching for ff-only, this wrong param looks correct right up until the merge behaves differently. ## Why it matters `require_signed_commits` plus PR merges only works with fast-forward-only (or a locally-signed merge). Any other server-side style mints an unsigned commit that the branch rule then rejects. Enabling signing on the org repos needed `default_merge_style: "fast-forward-only"` plus `allow_fast_forward_only_merge: true` and the other styles off. `madt_repos edit` could not express that, so it went out as raw API. ## Fix - Add `allow_fast_forward_only_merge` and `allow_rebase_explicit` to `madt_repos edit`. - Correct the `allow_rebase_update` description to its real meaning (update a PR branch by rebase), not fast-forward-only merging. - A short note that `default_merge_style: "fast-forward-only"` pairs with signed-commit enforcement would help the next person. ## Related - #431 - branch protection is undiscoverable from `madt_repos`; same shape of MCP-surface gap, and it drove the same raw-API fallback. - #424, #422, #392 - commit signing.
hexajon reopened this issue 2026-08-17 23:14:16 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#432
No description provided.