Repositorys der GitHub.com-Organisation exportieren
Mit der API für Migrationen können Sie die Repositorys einer Organisation exportieren. Nach dem Exportieren Ihrer Repositorys laden Sie das Migrationsarchiv herunter, das für den Importprozess verwendet wird.
Note: Fork relationships do not persist after a migration.
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
Note: Locking a repository prevents users from pushing to the repository or modifying a repository's resources, like issues, labels, milestones, wikis, and comments. New teams and collaborators can't be associated with a locked repository.
If you're performing a trial run, you don't need to lock repositories. Otherwise, it's highly recommended. 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 5 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
-
To import the archived migration data to a GitHub Enterprise Server instance, see "Importing migration data to GitHub Enterprise Server".