Files
management/verfahren/issue-migration

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 migriert 2026-08-01 (Testlauf, 1 Issue, verifiziert)
sorb/threadnet-call Projekt 19 ausstehend
sorb/ThreadNet-Web Projekt 16 ausstehend
sorb/axion1337.chat-gitops Projekt 20? ausstehend — größter Brocken, zuletzt

Cutover-Nachschritte (erst nach vollständiger Migration, siehe gitops#48): Gitea-Issues schließen/als migriert markieren, Doku-Verweise umbiegen (CLAUDE.md-Topologieregel!), TURN-Rotations-Hinweis, Bot-/Token-Workflows.