Skip to main content

Planen Der Migration von GitLab zu GitHub

Planen Sie Ihre Migration, indem Sie Ihre Zeitachse verstehen, welche Daten migriert werden sollen, und Ihre Organisationsstruktur.

Bestimmen Sie, wie viel Sie migrieren müssen

Ermitteln Sie zuerst Ihre Zeitachse, da sie ihren Ansatz weitgehend gestalten wird. Als ersten Schritt zum Bestimmen deines Zeitplans machst du eine Bestandsaufnahme der zu migrierenden Elemente.

  • Anzahl der Repositorys (Projekte)
  • Anzahl der Zusammenführungsanforderungen

Hinweis

Die Migrationsdauer basiert weitgehend auf der Anzahl der Zusammenführungsanforderungen in einem Repository. Wenn Sie 1.000 Repositorys migrieren möchten und jedes Repository durchschnittlich über 100 Zusammenführungsanforderungen verfügt, ist Ihre Migration wahrscheinlich sehr schnell. Wenn Sie nur 100 Repositorys migrieren möchten, die Repositorys jedoch durchschnittlich 75.000 Zusammenführungsanforderungen haben, dauert die Migration viel länger und erfordert mehr Planung und Tests.

Wir empfehlen den inventory-report Befehl in der GL2GH extension of the GitHub CLI. Dieser Befehl stellt eine Verbindung mit der GitLab-API und erstellt zwei CSV-Dateien. groups.csv listet Ihre GitLab-Gruppen auf und projects.csv listet Ihre Projekte auf, einschließlich der Anzahl der Seriendruckanforderungen.

Verwenden Sie zum Erstellen der CSV-Dateien den folgenden Befehl, indem Sie die URL Ihres GitLab-Servers (z. B. ) und YOUR_GITLAB_GROUP die Gruppe ersetzenGITLAB_SERVER_URL, https://gitlab.coman der Sie berichten möchten. Wenn Sie über alle Projekte berichten möchten, auf die Sie zugreifen können, lassen Sie es aus --gitlab-group. Führen Sie für alle verfügbaren Optionen aus gh gl2gh inventory-report --help.

Shell
gh gl2gh inventory-report --gitlab-server-url GITLAB_SERVER_URL --gitlab-group YOUR_GITLAB_GROUP

Nachdem Sie die Repositorys inventarisieren, die Sie migrieren müssen, bewerten Sie Ihre Bestandsdaten im Hinblick auf Ihre gewünschte Zeitachse.

  • Wenn deine Organisation eine größere Anzahl von Änderungen verträgt, kannst du möglicherweise auch alle deine Repositorys gleichzeitig migrieren und so deine Migration in wenigen Tagen abschließen.
  • Wenn Sie Über Teams verfügen, die nicht gleichzeitig migrieren können, möchten Sie Möglicherweise Ihre Migrationen stapeln und an die Zeitachsen der Teams anpassen und ihren Migrationsaufwand erweitern.

Bestimmen der GitHub Organisationsstruktur

Planen Sie als Nächstes die Organisationsstruktur, die Sie in GitHub erstellen werden. GitLab und GitHub verschiedene Möglichkeiten zum Organisieren der Arbeit eines Unternehmens haben.

  • GitLab: Instanz > Gruppen > Untergruppen (die bis zu 20 Ebenen tief geschachtelt werden können) > Projekten (Repositorys)
  • GitHub: Unternehmens-> Organisation > Repositorys

Nach der Migration zu GitHub" sollten Sie nur über ein Unternehmenskonto und eine Reihe von Organisationen verfügen, die sich im Besitz dieses Unternehmens befinden. Jede Gruppe auf oberster Ebene von GitLab entspricht in der Regel einer einzelnen Organisation auf GitHub. Anleitungen dazu, wie viele Organisationen erstellt werden sollen, finden Sie unter Bewährte Methoden zum Organisieren von Arbeiten in Ihrem Unternehmen.

Hinweis

GitHub hat keine Entsprechung der geschachtelten Untergruppen von GitLab. Es wird nicht empfohlen, für jede Untergruppe eine Organisation GitHub zu erstellen, da dies zu einer großen Liste nicht gruppierter Repositorys innerhalb jeder Organisation führen kann. Stattdessen können Sie den Zugriff auf Repositorygruppen verwalten, indem Sie Teams erstellen.

Wenn Sie Ihren Migrationsaufwand in Batches unterteilen möchten, kann ihnen die neue Struktur helfen, diese zu ermitteln. Wenn Sie mehr als eine Gruppe in GitLab haben und die Repositorys jeder Gruppe relativ große Batches sind, sollten Sie die Batchverarbeitung nach Gruppe in Betracht ziehen.

  1. Entscheiden Sie, was Ihre neue Organisationsstruktur sein wird.
  2. Entscheide, ob du den Migrationsaufwand in kleinere Batches aufteilen musst.
  3. Bei einer Aufteilung musst du außerdem entscheiden, wie du die Migrationsvorgänge aufteilen möchtest.

Konfigurieren von Repositoryberechtigungen

Da Berechtigungen in GitHub GitLab anders funktionieren als in GitLab, GitHub Enterprise Importer werden keine Repositoryberechtigungen, Gruppeneinstellungen oder Gruppenmitgliedschaften von GitLab migriert.

In GitLab werden Mitgliedern Rollen (z. B. Gast, Reporter, Entwickler, Betreuer oder Besitzer) auf Gruppen-, Untergruppen- oder Projektebene gewährt, und diese Rollen werden in der Hierarchie geerbt. Diese Rollen sind nicht direkt zugeordnet GitHub, daher müssen Sie den Zugriff nach der Migration neu erstellen.

Um Personen Zugriff auf migrierte Repositorys GitHubzu gewähren, empfehlen wir, Teams zu erstellen und jedem Team die entsprechende Zugriffsebene für die relevanten Organisationen und Repositorys zu gewähren. Sie können dann Personen zu diesen Teams hinzufügen. Siehe Teams in einem Unternehmen.