Files
management/docs/sources/migration/issue-migration/README.md
T
Thore CimbalandClaude Fable 5 92b448fe30 feat: slice 3 - wiki, sources and AARs in their neckbeard homes
Gate 4, slice 3: verfahren/, hosts/, vision/ and shared/ moved via git
mv - six AARs to docs/aar/ (four harvested by the 2026-08-09 retro,
two open), procedures and host knowledge to docs/wiki/ (admin,
deployment, architecture, new area vision), the retro protocol and the
commit mapping table to docs/sources/ (protokolle/, migration/). New:
the wiki index linking every page, and the mirror-topology page
carrying the why-two-places reasoning verbatim from the old CLAUDE.md
(F-013 preserved). All moved-path references retargeted; the link
checker drove the sweep to zero.

pruefe_prosa.py added (pattern C+D): SHA citations resolve via repo,
mapping table, optional component clones or a curated exemption list
(documented dead Gitea-force-push commits, a vendor-repo tag, an
Authentik uid that is hex but no git SHA, the external neckbeard
reference); wiki task prose without an issue reference errors, with a
visible pragma for deliberate checklists; the dead-tracker denylist
now covers every mirrored repo's retired Gitea tracker (F-005) - two
links re-verified against live GitLab titles and retargeted, five
defused into honest historical citations.

Verified: validate 0/0, gen_status --check current, drift 0. Demo on
the pre-migration state fires 6 findings (3 orphaned SHAs, 3 task
blocks); on the current tree exactly the 3 F-004 task blocks remain -
they turn green in slice 4 when the issues exist, which is why
pruefe_prosa joins CI only then.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 12:00:00 +00:00

2.2 KiB

Issue-Migration Gitea → GitLab (gitops#48)

migrate.py überführt Issues (offen und geschlossen, inkl. Kommentare) eines Gitea-Repos in ein bestehendes GitLab-Projekt. Einmal-Werkzeug für den #48-Cutover; hier versioniert wegen Reproduzierbarkeit.

Eigenschaften

  • Dry-Run per Default, --execute schreibt wirklich
  • Idempotent über Marker <!-- gitea-migration: OWNER/REPO#N --> in der Ziel-Beschreibung — Wiederholungsläufe überspringen Migriertes
  • Zeitstempel bleiben erhalten (Admin-Token darf created_at setzen); Autorschaft läuft auf den Token-User, Original-Autor+Datum stehen im Migrations-Fußtext bzw. Kommentar-Präfix (bekannter, akzeptierter Verlust)
  • Labels namensgleich (Gruppen-Labels müssen vorher existieren — Stand 2026-08-01 sind die 9 Gitea-Labels + 5 host:* als Gruppe-13-Labels angelegt)
  • PRs werden ausgefiltert, geschlossene Issues nach Anlage geschlossen

Aufruf

python3 migrate.py sorb/<repo> <gitlab-projekt-id>            # Dry-Run
python3 migrate.py sorb/<repo> <gitlab-projekt-id> --execute

Tokens: ~/.config/gitea-rohana/token (read:issue) und ~/.config/gitlab-lab/token (Admin) auf dem Mac.

Stand

Repo Ziel Status
sorb/thread-net-git Projekt 18 2026-08-01 (1 Issue, nummerngleich)
sorb/threadnet-call Projekt 19 2026-08-01 (2 Issues, nummerngleich)
sorb/ThreadNet-Web Projekt 16 2026-08-01 (9 Issues, nummerngleich)
sorb/axion1337.chat-gitops Projekt 17 2026-08-01 (50 Issues, Nummern verschoben)

⚠️ gitops-Nummern sind NICHT deckungsgleich: Gitea hatte Lücken (PRs zählen mit), GitLab vergibt lückenlos — z. B. Gitea#48 → GitLab#46, Gitea#51 → GitLab#49, Gitea#52 → GitLab#50. Die verbindliche Zuordnung steht im Migrations-Fußtext jedes GitLab-Issues (Migriert aus Gitea …#N); alte Commit-/Doku-Verweise auf „gitops#N" meinen die Gitea-Nummer.

Cutover-Nachschritte (siehe gitops#48): Gitea-Issues schließen/als migriert markieren 2026-08-01, Doku-Verweise umgebogen (CLAUDE.md-Topologieregel) , Milestones wurden nicht migriert (akzeptierter Verlust, gitops hatte keine aktiven), Bot-/Token-Workflows (claude-issues → GitLab-Äquivalent) offen.