60 lines
4.1 KiB
Markdown
60 lines
4.1 KiB
Markdown
|
|
# 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 user `s8n-ru` (id=1, is_admin=true).
|
||
|
|
- Inventory taken via `gh repo list` for user `s8n-ru` and org `veilor-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`) since `https://git.s8n.ru/` is locked by the `no-guest@file` ACL.
|
||
|
|
|
||
|
|
## 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/x` the default-branch metadata had been set to `KisaragiEffective-patch-1` (an in-flight feature branch from upstream `KisaragiEffective`, presumably the last branch processed when the timeout hit). Fixed via `PATCH /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.
|