Sourced from previous audits + agent-wave outputs (2026-05-05): AUDIT-2026-05-05.md — 5-agent stack synthesis forgejo/DEPLOY.md — git.s8n.ru deploy runbook forgejo/forgejo-compose.yml — production compose forgejo/runner-compose.yml — forgejo-runner forgejo/migration-report-... — GH→Forgejo migration audit (6/6 green) runbooks/MIGRATION-... — nullstone→cobblestone runbook runbooks/DE-DECISION-... — keep-vs-strip DE on cobblestone repos/REPO-AUDIT-2026-05-05.md — repo trees + ownership
4.1 KiB
Forgejo Migration Report — 2026-05-05
Summary: All 6 GitHub repos owned/admined by s8n-ru are mirrored to git.s8n.ru with healthy push-mirrors GH→Forgejo→GH; only fix this run was correcting the default branch on s8n-ru/x from KisaragiEffective-patch-1 back to master.
Scope
- GitHub auth verified:
gh auth status→s8n-ru(token scopes incl.repo,admin:org,delete_repo). - Forgejo auth verified:
~/.config/veilor-forgejo-pat.txt→ API users8n-ru(id=1, is_admin=true). - Inventory taken via
gh repo listfor users8n-ruand orgveilor-org(only org user belongs to). No archived repos and no forks were returned. - All API calls to Forgejo went via the internal-via-alpine route (
docker run --rm --network proxy alpine:3 ... http://forgejo:3000) sincehttps://git.s8n.ru/is locked by theno-guest@fileACL.
State file
/tmp/migrate-state.tsv was used as the resume-tracker so a re-run wouldn't redo work. Final contents:
| owner | name | status | notes |
|---|---|---|---|
| s8n-ru | x | done | default-branch-fixed-this-run |
| s8n-ru | minecraft-launcher | done | already-mirrored |
| s8n-ru | auth-limbo | done | already-mirrored |
| s8n-ru | minecraft-server | done | already-mirrored |
| s8n-ru | 8bit-icons | done | already-mirrored |
| veilor-org | veilor-os | skipped | already-migrated (per spec) |
Audit
GH HEAD (default branch) compared against Forgejo HEAD on the same branch name; branch and tag counts compared with full pagination; push-mirror existence verified with last_error == "".
| Owner | Name | Default | GH HEAD | FJ HEAD | Branches GH/FJ | Tags GH/FJ | Push-mirror | Last sync (UTC+1) |
|---|---|---|---|---|---|---|---|---|
| s8n-ru | x | master | a2c1ed23 | a2c1ed23 | 84 / 84 | 1310 / 1310 | yes | 2026-05-06 02:17:27 |
| s8n-ru | minecraft-launcher | main | ae760edd | ae760edd | 1 / 1 | 1 / 1 | yes | 2026-05-06 02:14:24 |
| s8n-ru | auth-limbo | main | b6863806 | b6863806 | 1 / 1 | 0 / 0 | yes | 2026-05-06 02:14:26 |
| s8n-ru | minecraft-server | main | ede60294 | ede60294 | 1 / 1 | 0 / 0 | yes | 2026-05-06 02:14:26 |
| s8n-ru | 8bit-icons | main | 42a3252d | 42a3252d | 1 / 1 | 0 / 0 | yes | 2026-05-06 02:14:26 |
| veilor-org | veilor-os | main | b40e89a3 | b40e89a3 | 22 / 22 | 2 / 2 | yes | (pre-existing) |
All push-mirrors target https://github.com/<owner>/<name>.git with sync_on_commit: true.
Findings on this run
- Previous attempt's API timeout left every repo intact and content-correct, but on
s8n-ru/xthe default-branch metadata had been set toKisaragiEffective-patch-1(an in-flight feature branch from upstreamKisaragiEffective, presumably the last branch processed when the timeout hit). Fixed viaPATCH /api/v1/repos/s8n-ru/x { "default_branch": "master" }. All 84 branches and 1310 tags were already present, so no re-mirror was needed. - All five s8n-ru push-mirrors and the veilor-org/veilor-os mirror reported
last_error: ""and recent successful syncs, confirming the GH→Forgejo→GH bidirectional path was healthy before this run started.
Failures
None.
Skipped
| Owner | Name | Reason |
|---|---|---|
| veilor-org | veilor-os | Already migrated before this task began |
No archived repos and no forks (where user is not source author) were encountered. No repo exceeded 1 GB (largest is s8n-ru/x at ~268 MB).
Cleanup
/tmp/migrate/ removed. /tmp/migrate-state.tsv retained for the next re-run.