forgejo-repo-settings can never report a repo as ok, because allow_manual_merge is write-only #907
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#907
Loading…
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?
scripts/forgejo-repo-settings.pydeclaresallow_manual_merge: FalseinDESIRED_REPO_SETTINGS, but Forgejo'sGET /api/v1/repos/{owner}/{repo}does not return that field at all.repo_settings_diffcomparescurrent.get("allow_manual_merge")againstFalse, getsNone, and records a difference. So the field is permanently drifted from the converge's point of view.Observed right after a successful apply.
coilyco-gaming/sirens-echowas converged, every other field verified on the server, andallow_manual_mergestill reads back asNone:Why it matters
The converge is also the audit surface.
--dry-runis how drift gets checked, and today every repo reportswould-updateforever, so a genuine drift is indistinguishable from this artifact. Theokbranch inconverge_repois unreachable in practice.It also makes each run write all 11 fields to all 32 repos regardless of need.
Options
allow_manual_mergefromDESIRED_REPO_SETTINGS. It is already covered byallow_merge_commits: Falseplus branch protection, and the policy loses nothing readable.Option 1 is simpler and I would take it, but it narrows the declared policy by one field, so it wants a decision rather than a drive-by edit.
Found while converging sirens-echo for
coilysiren/inbox#398.