The forge module changes no repository's branch protection unless keep-main-rules is true (issue 1903) #463

Merged
jschoubben merged 2 commits from fix/gitea-keep-main-rules into main 2026-10-23 15:14:21 +00:00
Member

Fixes issue 1903's first step, the operator's ask (2026-10-23 15:58): the forge module rewrote every repository's main rule from rules fixed in its code, undoing what the operator set at the forge.

  • New setting keep-main-rules (boolean, default false).
  • With it false: the 10-minute tick and the start-time call write nothing; the token mint (setUpToolsAccount) writes nothing; repositories sync still makes new repositories, but changes no existing repository's protection and says so in its outcome.
  • With it true: today's behaviour.
  • Tests: a write counter and the fake forge prove no protection write with the setting false for the tick, the mint and the sync; the issue 948 tests run with it true.

The NATS-native shape (protection as declared state applied on a settings event, no timer) is the rest of the issue.

Reviewed-by: review-1903@shanks at 68dfca1057
Pushed-by: fix-gitea-reset@shanks

Fixes issue 1903's first step, the operator's ask (2026-10-23 15:58): the forge module rewrote every repository's main rule from rules fixed in its code, undoing what the operator set at the forge. - New setting `keep-main-rules` (boolean, default **false**). - With it false: the 10-minute tick and the start-time call write nothing; the token mint (setUpToolsAccount) writes nothing; `repositories sync` still makes new repositories, but changes no existing repository's protection and says so in its outcome. - With it true: today's behaviour. - Tests: a write counter and the fake forge prove no protection write with the setting false for the tick, the mint and the sync; the issue 948 tests run with it true. The NATS-native shape (protection as declared state applied on a settings event, no timer) is the rest of the issue. Reviewed-by: review-1903@shanks at 68dfca1057940ab6dc58289eeff5e8bdaa8fa810 Pushed-by: fix-gitea-reset@shanks
mesh-tools added 2 commits 2026-10-23 13:59:24 +00:00
The operator, 2026-10-23: "disable the gitea branch protection reset thing". The 10-minute tick and the start-time
ensureMainMerges, and the repositories sync's changes to existing repositories' main rules, now run only when the new
setting is true; new repositories are still made. The sync says in its outcome that rules were left.
Gate the token mint's main-rule write by keep-main-rules too
mesh/delivery delivered
mesh/check pass 68dfca105794 on 3bec357968da | unit 4443 run, 0 kept, 15 skipped | integration 4483 run, 0 kept, 23 skipped | over bound: unit, integr…
68dfca1057
The operator, 2026-10-23: "disable the gitea branch protection reset thing". setUpToolsAccount (run at every token mint) called ensureMainMerges regardless; it now does so only when the setting is true.
Author
Member

Delivery novox/mesh-catalog@68dfca105794 — delivered since 2026-10-23T15:17:19Z

Delivery plan — builds gitea → novox; no bus step

  • tier 0: gitea
  • novox: receives gitea
  • gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it
  • gitea keeps data (ADR 0233): what it holds is backed up before it moves

Machines

  • gitea on every machine running it: sent

Transitions

  • 2026-10-23 13:59 (new) → proposed (announced): novox/mesh-catalog#463's head announced
  • 2026-10-23 14:46 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit
  • 2026-10-23 14:46 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed
  • 2026-10-23 15:14 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on
  • 2026-10-23 15:14 held → delivering (release): the operator merged #463 by hand at the forge (17:14), reviewed at 68dfca10; its check stuck 'running' with no step (issue 734, diagnosed now): the gitea reset must be off before R4g touches gitea
  • 2026-10-23 15:17 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says

The commit's note under refs/notes/mesh-plan keeps every transition: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@68dfca105794` — **delivered** since 2026-10-23T15:17:19Z **Delivery plan** — builds gitea → novox; no bus step - tier 0: gitea - novox: receives gitea - gitea provides npm-package-registry, git, gitea-read, forge-account: its consumers are sent again after it - gitea keeps data (ADR 0233): what it holds is backed up before it moves **Machines** - gitea on every machine running it: sent **Transitions** - 2026-10-23 13:59 (new) → proposed (announced): novox/mesh-catalog#463's head announced - 2026-10-23 14:46 proposed → checked (checked): a verdict names this commit and the trunk's head as its trunk commit - 2026-10-23 14:46 checked → rejected (refused): the gate failed or could not run, or the repository's own check failed - 2026-10-23 15:14 rejected → held (merged-unchecked): merged without a passing check — a verdict known with it is taken first: only a person decides that it goes on - 2026-10-23 15:14 held → delivering (release): the operator merged #463 by hand at the forge (17:14), reviewed at 68dfca10; its check stuck 'running' with no step (issue 734, diagnosed now): the gitea reset must be off before R4g touches gitea - 2026-10-23 15:17 delivering → delivered (done): its walk is done, carrying its own commit: every machine of its deploy plan passed, or was left as its policy says The commit's note under `refs/notes/mesh-plan` keeps every transition: `git log --notes=mesh-plan`.
jschoubben merged commit 3bec357968 into main 2026-10-23 15:14:21 +00:00
jschoubben deleted branch fix/gitea-keep-main-rules 2026-10-23 15:14:22 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#463