Preparing the source organization on GitHub
-
Stellen Sie sicher, dass Sie für die Repositorys in der Quellorganisation über Inhaberberechtigungen verfügen.
-
Generiere ein Zugriffstoken mit den Bereichen
repo
undadmin:org
auf GitHub.com. -
Erstelle zum Minimieren der Ausfallzeit eine Liste der Repositorys, die Du von der Quellinstanz exportieren möchtest. Du kannst mehrere Repositorys gleichzeitig zu einem Export hinzufügen. verwende dazu eine Textdatei, in der die URL jedes Repositorys in einer separaten Zeile aufgelistet wird.
Exporting the organization's repositories
Hinweis: Fork-Beziehungen bleiben nach einer Migration nicht bestehen.
Verwenden Sie die API für Migrationen, um Repository-Daten von GitHub.com zu exportieren.
Die API für Migrationen befindet sich derzeit in einer Vorschauphase, weshalb sich die Endpunkte und Parameter künftig ändern können. Um auf die API für Migrationen zuzugreifen, müssen Sie einen benutzerdefinierten Medientyp im Header Accept
angeben: application/vnd.github.wyandotte-preview+json
. Die folgenden Beispiele enthalten den benutzerdefinierten Medientyp.
Migrationsarchiv generieren
Hinweis: Wenn ein Repository gesperrt wird, werden Benutzer daran gehindert, Elemente auf das Repository zu übertragen oder die Ressourcen, beispielsweise Issues, Kennzeichnungen, Meilensteine, Wikis und Kommentare eines Repositorys zu ändern. Es ist nicht möglich, neue Teams und Mitarbeiter einem gesperrten Repository zuzuordnen.
Wenn Du einen Probelauf durchführst, musst Du die Repositorys nicht sperren. Andernfalls wird dies dringend empfohlen. Weitere Informationen finden Sie unter „Informationen zu Migrationen“.
-
Benachrichtigen Sie die Mitglieder Ihrer Organisation, dass Sie eine Migration durchführen werden. Der Export kann entsprechend der Anzahl der zu exportierenden Repositorys mehrere Minuten dauern. Die vollständige Migration, einschließlich des Imports, dauert ggf. mehrere Stunden. Daher wird empfohlen, einen Probelauf durchzuführen, um die Länge des vollständigen Prozesses ermitteln zu können. Weitere Informationen finden Sie unter „Informationen zu Migrationen“.
-
Starten Sie eine Migration. Senden Sie dazu eine
POST
-Anforderung an den Migrationsendpunkt. Sie benötigen Folgendes:- Ihr Zugriffstoken für die Authentifizierung.
- Eine Liste der Repositorys, die migriert werden sollen:
curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X POST \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \ https://api.github.com/orgs/orgname/migrations
- Wenn Sie die Repositorys sperren möchten, bevor Sie sie migrieren, stellen Sie sicher, dass
lock_repositories
auftrue
festgelegt ist. Dies wird dringend empfohlen. - Dateianhänge können ausgeschlossen werden. Übergeben Sie dazu
exclude_attachments: true
an den Endpunkt. Dateianhänge können groß sein und blähen Ihr endgültiges Migrationsarchiv ggf. unnötig auf. Die endgültige Archivgröße muss kleiner als 20 GB sein.
Diese Anforderung gibt eine eindeutige
ID
zurück, die Ihre Migration darstellt. Sie benötigen diese für nachfolgende Aufrufe der API für Migrationen. -
Senden Sie eine
GET
-Anforderung an den Endpunkt für den Status der Migration, um den Status einer Migration abzurufen. Sie benötigen Folgendes:- Ihr Zugriffstoken für die Authentifizierung.
- Die eindeutige
ID
der Migration:curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id
Eine Migration kann einen der folgenden Zustände aufweisen:
pending
(ausstehend): Die Migration wurde noch nicht gestartet.exporting
(wird exportiert): Die Migration wird ausgeführt.exported
(exportiert): Die Migration wurde erfolgreich abgeschlossen.failed
(fehlgeschlagen): Die Migration ist fehlgeschlagen.
-
Laden Sie nach dem Export Ihrer Migration das Migrationsarchiv herunter. Senden Sie dazu eine
GET
-Anforderung an den Endpunkt für den Download der Migration. Sie benötigen Folgendes:- Ihr Zugriffstoken für die Authentifizierung.
- Die eindeutige
ID
der Migration:curl -H "Accept: application/vnd.github.wyandotte-preview+json" \ -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \ -L -o migration_archive.tar.gz \ https://api.github.com/orgs/orgname/migrations/id/archive
-
Das Migrationsarchiv wird nach sieben Tagen automatisch gelöscht. Wenn Sie es schneller löschen möchten, senden Sie eine
DELETE
-Anforderung an den Endpunkt zum Löschen des Migrationsarchivs. Sie benötigen Folgendes:- Ihr Zugriffstoken für die Authentifizierung.
- Die eindeutige
ID
der Migration:curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id/archive
-
Informationen zum Importieren der archivierten Migrationsdaten auf eine GitHub Enterprise Server-Instanz findest Du unter „Migrationsdaten in GitHub Enterprise Server importieren“.