Login
View Ticket
Login
Ticket Hash: a4738213e92cb4a7a87e3967dcf070c016b138af
Title: M-git: every served repository mirrored to GitHub through Forgejo, and git imports close the loop
Status: Active Type: Feature_Request
Severity: Priority:
Subsystem: Resolution:
Last Modified: 2026-09-20 14:43:33
51.7 days ago
Created: 2026-09-17 15:26:10
54.7 days ago
Version Found In:
User Comments:
added on 2026-09-17 15:26:10:
OCX-PLAN: role=milestone parent=be4a53983a8a393f11606bb4448f6a3422b422df seq=9
MAINTAINER 2026-09-17: 'can we plan to add git exports for all the repos to synchronize github? eventually, I'll want to also enable git imports of code updates as well to close the loop.'

What exists (merged on the 11th, tickets never advanced past Review): the git serving route in the one binary (W5.5), Forgejo scheduled pulls as the lane (W5.3), per-repo main-branch and marks adoption in mirror-sync (W5.8), the gzip upload-pack fix. Today only Stone is exported and mirrored; the ollama route itself answers 404 because no export exists; BeagleBadge and armbian-build mirrors are stale leftovers. Nothing runs an export on its own (34173149fd).

Units, in order: W1 export on trunk move for every served repo, with main-branch and opt-out as repo config (34173149fd, existing) -> W2 first export for every repo that has none, served per repo, mirror freshness on the console -> W3 Forgejo pull mirrors and GitHub push mirrors per repo (the maintainer's step; the system emits the exact list) -> W5 round-trip fidelity proven on a temp repo before any import runs -> W4 the import lane (7cd1bd1ea3 phase 2): git commits arrive as a Fossil branch through the normal gate, never straight onto trunk -> W6 loop guards. Definition of done: every served repo not declared git-native shows a fresh mirror on the console, Forgejo and GitHub match trunk within one pull interval, and a commit pushed to GitHub appears as a gated branch here.

added on 2026-09-19 05:38:40:
MILESTONE STATE 2026-09-19 05:10Z (coordinator fable): the system side of M-git is complete and live: every served repository exports git on merge at its own URL; the twelve with a destination are on their destination's history and export-on-merge is on; each repository's destination is in its config and every export checks in-sync, fast-forward or diverged against it; one verb adopts a destination's history; one verb imports a destination's new commits onto a gated import branch; loop guards and a round-trip proof are in the suite. Remaining: the maintainer's own Forgejo push mirrors to GitHub (all twelve are push-safe), and any new repository gets its destination row when he names it.