Skip to main content

Migrieren von Repositorys von GitHub.com zu GitHub Enterprise Cloud

Du kannst Repositorys von GitHub.com zu GitHub Enterprise Cloud migrieren, indem du die GitHub CLI oder die GraphQL-API verwendest.

Tool navigation

Informationen zu Organisationsmigrationsvorgängen mit GitHub Enterprise Importer

Migrationen zu GitHub Enterprise Cloud umfassen Migrationen zwischen Konten auf GitHub.com und bei Einführung der Datenresidenz Migrationen zur Unterdomäne deines Unternehmens auf GHE.com.

Du kannst deine Migration entweder mit der GitHub CLI oder mit der API ausführen.

Die GitHub CLI vereinfacht den Migrationsprozess und wird für die meisten Kundinnen empfohlen. Fortgeschrittene Kundinnen, die viele Anpassungen vornehmen müssen, können die API verwenden, um eigene Integrationen mit dem GitHub Enterprise Importer zu erstellen.

Um Anweisungen zur Verwendung der GitHub CLI anzuzeigen, verwendest du den Toolumschalter oben auf der Seite.

Voraussetzungen

  • Es wird dringend empfohlen, einen Testlauf deiner Migration durchzuführen und die Produktionsmigration bald danach abzuschließen. Weitere Informationen zu Testläufen findest du unter Übersicht über die Migration zwischen GitHub-Produkten.
  • Stellen Sie sicher, dass Sie die zu migrierenden Daten und die bekannten Supportbeschränkungen des Importer verstehen. Weitere Informationen findest du unter Informationen zu Migrationen zwischen GitHub-Produkten.
  • Es ist zwar nicht erforderlich, die Arbeit während der Produktionsmigration zu unterbrechen, es wird aber empfohlen. Der Importer unterstützt keine Deltamigrationen, sodass Änderungen, die während der Migration vorgenommen werden, nicht migriert werden. Wenn du dich dafür entscheidest, die Arbeit während der Produktionsmigration nicht zu unterbrechen, musst du diese Änderungen manuell migrieren.
  • Für die Quellorganisation musst du Organisationsbesitzer*in sein oder dir muss die Migrator-Rolle zugewiesen sein. Weitere Informationen finden Sie unter Verwalten des Zugriffs für eine Migration zwischen GitHub-Produkten.
  • Darüber hinaus musst du Unternehmensbesitzer*in für das Zielunternehmenskonto sein.

Schritt 0: Vorbereiten der Verwendung der GraphQL-API von GitHub

Um GraphQL-Abfragen zu erstellen, musst du eigene Skripts schreiben oder einen HTTP-Client wie Insomnia verwenden.

Weitere Informationen zu den ersten Schritten mit der GitHub-GraphQL-API, einschließlich der Authentifizierung, findest du unter Erstellen von Aufrufen mit GraphQL.

Du sendest alle GraphQL-Abfragen an das Ziel deiner Migration. Stelle bei der Migration zu GitHub Enterprise-Cloud mit Datenresidenz sicher, dass du Abfragen an den Endpunkt für die Unterdomäne für GHE.com sendest.

Schritt 1: Abrufen der Unternehmens-ID für dein Migrationsziel

Verwende als Unternehmensbesitzer*in in GitHub.com die folgende Abfrage, um die ID für das Unternehmenskonto auszugeben, das die migrierte Organisation besitzen soll. Du benötigst die Unternehmens-ID, um das Migrationsziel anzugeben.

query(
  $slug: String!
){
  enterprise (slug: $slug)
  {
    slug
    id
  }
}
AbfragevariableBeschreibung
slugDer Slug für dein Enterprise-Konto. Du findest ihn in der URL für dein Unternehmen: https://github.com/enterprises/SLUG oder https://SLUG.ghe.com.

Schritt 2: Starten der Organisationsmigration

Wenn du eine Migration beginnst, werden eine einzelne Organisation und die zugehörigen Daten in eine neue Organisation innerhalb des von dir festgelegten Zielunternehmens migriert.

mutation startOrganizationMigration (
  $sourceOrgUrl: URI!,
  $targetOrgName: String!,
  $targetEnterpriseId: ID!,
  $sourceAccessToken: String!,
    $targetAccessToken: String!
){
  startOrganizationMigration( input: {
    sourceOrgUrl: $sourceOrgUrl,
    targetOrgName: $targetOrgName,
    targetEnterpriseId: $targetEnterpriseId,
    sourceAccessToken: $sourceAccessToken,
        targetAccessToken: $targetAccessToken
  }) {
    orgMigration {
      id
    }
  }
}
AbfragevariableBeschreibung
sourceOrgUrlDie URL der Quellorganisation, z. B. https://github.com/octo-org
targetOrgNameDer Name, den du der neuen Organisation geben willst. Kann nicht von einer anderen Organisation auf deiner Zielplattform verwendet werden.
targetEnterpriseIdDie ID des Unternehmens, in dem du die neue Organisation erstellen möchten, wie in Schritt 2 ausgegeben
sourceAccessTokenDein personal access token (classic) für die Quellorganisation. Informationen zu den Anforderungen findest du unter Verwalten des Zugriffs für eine Migration zwischen GitHub-Produkten.
targetAccessTokenDein personal access token (classic) für das Zielunternehmen

Im nächsten Schritt verwendest du die von der startOrganizationMigration-Mutation zurückgegebene Migrations-ID, um den Migrationsstatus zu überprüfen.

Schritt 3: Überprüfen des Migrationsstatus

Um Migrationsfehler zu erkennen und sicherzustellen, dass deine Migration funktioniert, kannst du die erstellte(n) OrganizationMigration(en) abfragen und den Migrationsstatus mithilfe der getMigration-Abfrage anzeigen.

Die Abfrage gibt einen Status aus, der dich darüber informiert, ob die Migration queued, in progress, failed, oder completed ist, sowie darüber, wie viele Repositorys auf die Migration warten. Wenn die Migration fehlerhaft war, gibt der Importer einen Grund für den Fehler an.

query (
  $id: ID!
){
  node( id: $id ) {
    ... on OrganizationMigration {
      id
            sourceOrgUrl
            targetOrgName
      state
      failure_reason
      remaining_repositories_count
      total_repositories_count
    }
  }
}
AbfragevariableBeschreibung
idDie id deiner Migration

Es empfiehlt sich, nach Abschluss der Migration das Migrationsprotokollrepository zu überprüfen. Weitere Informationen finden Sie unter Zugreifen auf die Migrationsprotokolle für GitHub Enterprise Importer.

Als letzten Schritt solltest du eine Überprüfung der Integrität deiner Organisation und der migrierten Repositorys vornehmen.