# 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 `` 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/ # Dry-Run python3 migrate.py sorb/ --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.