# Exportieren von Migrationsdaten aus GitHub.com

Du kannst mit der API auf GitHub.com Repositories für die Migration auswählen und Migrationsdaten aus einer Organisation exportieren. Anschließend kannst du ein Migrationsarchiv generieren, das du in eine GitHub Enterprise Server-Instanz importieren kannst.

## Vorbereiten der Quellorganisation auf GitHub

1. Stelle sicher, dass du über [Besitzerberechtigungen](/de/enterprise-server@3.22/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization) für die Repositorys der Quellorganisation verfügst.

2. [Generieren eines Zugriffstokens](/de/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) mit den Bereichen `repo` und `admin:org` auf GitHub.com.

3. 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.

## Exportieren der Repositorys der Organisation

> \[!NOTE]
> Forkbeziehungen bleiben nach einer Migration nicht bestehen.

Zum Exportieren von Repositorydaten aus GitHub.com verwendest du die [Migrations-API](/de/rest/migrations).

Die API für Migrationen befindet sich derzeit in einer Vorschauphase, weshalb sich die Endpunkte und Parameter künftig ändern können.

## Migrationsarchiv generieren

> \[!NOTE]
> Das Sperren eines Repositorys verhindert den gesamten Schreibzugriff auf das Repository. Einem gesperrten Repository können keine neuen Teams oder Mitarbeiter zugeordnet werden.
>
> Wenn du eine Testversion ausführst, musst du das Repository nicht sperren. Wenn du Daten aus einem Repository migrierst, das gerade verwendet wird, empfiehlt GitHub die Sperrung des Repositorys. Weitere Informationen finden Sie unter [Informationen zu „ghe-migrator“](/de/enterprise-server@3.22/migrations/using-ghe-migrator/about-ghe-migrator#types-of-migrations).

1. Benachrichtige die Mitglieder deiner Organisation, dass du eine Migration durchführen wirst. 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 „ghe-migrator“](/de/enterprise-server@3.22/migrations/using-ghe-migrator/about-ghe-migrator#types-of-migrations).

2. Starte eine Migration, indem du eine `POST`-Anforderung an [den Migrationsendpunkt](/de/rest/migrations#start-an-organization-migration) sendest. Sie benötigen Folgendes:

   * Dein Zugriffstoken für die Authentifizierung.

   * Eine [Liste der Repositorys](/de/rest/repos#list-organization-repositories), die du migrieren möchtest:

     ```shell
     curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
     -X POST \
     -H "Accept: application/vnd.github+json" \
     -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
     https://api.github.com/orgs/ORG_NAME/migrations
     ```

   * Wenn du die Repositorys vor der Migration sperren möchtest, stelle sicher, dass `lock_repositories` auf `true` festgelegt ist. Dies wird dringend empfohlen.

   * Man kann Dateianhänge ausschließen, indem man `exclude_attachments: true` an den Endpunkt (endpoint) übergibt. 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 einen eindeutigen `id`-Wert zurück, der deine Migration darstellt. du benötigst diese für nachfolgende Aufrufe der API für Migrationen.

3. Sende eine `GET`-Anforderung an [den Migrationsstatusendpunkt](/de/rest/migrations#get-an-organization-migration-status), um den Status einer Migration abzurufen. Sie benötigen Folgendes:

   * Dein Zugriffstoken für die Authentifizierung.
   * Die eindeutige `id` der Migration:

     ```shell
     curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
     -H "Accept: application/vnd.github+json" \
     https://api.github.com/orgs/ORG_NAME/migrations/ID
     ```

   Eine Migration kann einen der folgenden Zustände aufweisen:

   * `pending`, was bedeutet, dass die Migration noch nicht gestartet wurde.
   * `exporting`, was bedeutet, dass die Migration im Gange ist.
   * `exported`, was bedeutet, dass die Migration erfolgreich abgeschlossen wurde.
   * `failed`, was bedeutet, dass bei der Migration ein Fehler aufgetreten ist.

4. Lade nach dem Export deiner Migration das Migrationsarchiv herunter, indem du eine `GET`-Anforderung an [den Migrationsdownload-Endpunkt](/de/rest/migrations#download-an-organization-migration-archive) sendest. Sie benötigen Folgendes:
   * Dein Zugriffstoken für die Authentifizierung.
   * Die eindeutige `id` der Migration:

     ```shell
     curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
     -H "Accept: application/vnd.github+json" \
     -L -o migration_archive.tar.gz \
     https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
     ```

5. Das Migrationsarchiv wird nach sieben Tagen automatisch gelöscht. Wenn du es früher löschen möchtest, kannst du eine `DELETE`-Anforderung an [den Löschendpunkt des Migrationsarchivs](/de/rest/migrations#delete-an-organization-migration-archive) senden. Sie benötigen Folgendes:
   * Dein Zugriffstoken für die Authentifizierung.
   * Die eindeutige `id` der Migration:

     ```shell
     curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
     -X DELETE \
     -H "Accept: application/vnd.github+json" \
     https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
     ```

6. Informationen zum Vorbereiten der archivierten Migrationsdaten für den Import in eine GitHub Enterprise Server-Instanz findest du unter [Migrieren von Daten zu GitHub Enterprise Server](/de/enterprise-server@3.22/migrations/using-ghe-migrator/migrating-data-to-github-enterprise-server#preparing-the-migrated-data).