Skip to main content

Umzug eines Repositories

von GitHub zu Forgejo via Migration                                                                                                 

Der Umzug eines Repositories von GitHub zu Forgejo lässt sich schnell durchführen, da Forgejo eine eingebaute Migration-Funktion bietet. Dadurch werden nicht nur der Code und die Commits, sondern optional auch Issues, Pull Requests, Releases und Wikis automatisch übernommen.

Hier sind die Schritte für die Migration:

1.GitHub Personal Access Token erstellen:
Erforderlich für private Repositories oder Meta-Daten wie PRs und Issues.
  1. Gehe auf GitHub zu Settings -> Developer Settings -> Personal Access Tokens -> Tokens (classic).

  2. Erstelle einen neuen Token (Generate new token).

  3. Gib ihm mindestens die Berechtigung repo (für Zugriff auf Repositories) und erstelle den Token. Kopiere ihn direkt ab.

2.Migration in Forgejo starten:
  1. Melde dich bei deiner Forgejo-Instanz an.

  2. Klicke oben rechts auf das +-Symbol und wähle Neue Migration (oder New Migration).

  3. Wähle GitHub als Quell-Plattform aus.

3.Zugangsdaten und Optionen konfigurieren:
  1. Trage dein GitHub Personal Access Token im Feld Access Token ein.

  2. Gib die Clone URL des GitHub-Repositories an (z. B. [https://github.com/user/repo.git](https://github.com/user/repo.git)).

  3. Wähle den neuen Repository-Namen und den Eigentümer (User oder Organisation) in Forgejo aus.

  4. Setze Haken bei den Elementen, die du migrieren möchtest:

    • Code & Commits

    • Issues & Issue-Kommentare

    • Pull Requests

    • Releases & Attachments

    • Wiki

  5. Klicke auf Migration starten.

4.Lokales Git Remote aktualisieren:Lokal auf deinem Computer ausführen.

Wenn du das Repository bereits lokal gekontrollierst oder daran arbeitest, passe die Remote-URL an deine Forgejo-Instanz an:

Bash
# Aktuelle URL prüfen
git remote -v

# Remote auf Forgejo umstellen
git remote set-url origin https://deine-forgejo-instanz.de/user/repo.git

# Änderungen zur Bestätigung pushen/fetchen
git fetch origin

Was du beachten solltest

  • GitHub Actions vs. Forgejo Actions: CI/CD-Pipelines (.github/workflows/) werden als Dateien mitkopiert, funktionieren auf Forgejo aber nur, wenn dort Forgejo Actions (basierend auf act_runner) aktiviert ist. Eventuell musst du Syntax-Details anpassen.

  • Webhooks & Integrations: Externe Anbindungen (Discord-Bots, Deployment-Hooks etc.) werden nicht automatisch übertragen und müssen in Forgejo unter Repository-Einstellungen -> Webhooks neu angelegt werden.