Skip to main content

Verwalten des Zugriffs für eine Migration zwischen GitHub-Produkten

Bevor du GitHub Enterprise Importer verwendest, musst du sicherstellen, dass du über ausreichenden Zugriff auf die Quelle und das Ziel deiner Migration verfügst.

Informationen zum erforderlichen Zugriff für GitHub Enterprise Importer

Zum Schutz deiner Daten erzwingt GitHub bestimmte Zugriffsanforderungen für die Verwendung von GitHub Enterprise Importer. Diese Anforderungen variieren je nach Aufgabe, die du auszuführen versuchts. Um Fehler zu vermeiden, solltest du diesen Artikel sorgfältig lesen und überprüfen, ob alle Anforderungen für die geplante Aufgabe erfüllt sind.

Zum Ausführen einer Migration benötigst du ausreichenden Zugriff auf die Quelle und das Ziel deiner Migration. Von der Quelle Organisation auf GitHub.com oder GitHub Enterprise Server kannst du die Daten übertragen. Das Ziel ist entweder ein Organisationskonto für GitHub.com, wenn du Repositorys überträgst, oder ein Enterprise-Konto für GitHub.com, wenn du eine gesamte Organisation überträgst.

Um für die Migration ausreichenden Zugriff auf die Quelle und das Ziel zu haben, benötigst du Folgendes:

  • Eine erforderliche Rolle im Organisations- oder Unternehmenskonto
  • Eine personal access token mit Zugriffsberechtigung für das Organisations- oder Enterprise-Konto
    • Das personal access token muss alle erforderlichen Bereiche umfassen, die von deiner Rolle und der Aufgabe abhängen, die du ausführen möchtest.
    • Wenn die Quelle oder das Ziel einmaliges Anmelden mit SAML für GitHub.com verwendet, musst du das personal access token für einmaliges Anmelden autorisieren.

Wenn du darüber hinaus Listen zugelassener IP-Adressen an der Quelle oder am Ziel verwendest, musst du möglicherweise die Positivlisten konfigurieren, um den Zugriff von GitHub Enterprise Importer zuzulassen.

Wenn du zum ersten Mal von GitHub Enterprise Server 3.8 oder höher migrierst, benötigst du auch jemanden mit Zugriff auf die Verwaltungskonsole, um den Blobspeicher für deine GitHub Enterprise Server-Instanz einzurichten.

Informationen zur Migrationsrolle

Damit die Migrationsvorgänge nicht unbedingt von Organisationsbesitzer*innen abgeschlossen werden müssen, bietet GitHub.com eine spezielle Rolle für die Verwendung von GitHub Enterprise Importer. Durch das Zuweisen der Migrationsrolle kannst du andere Teams oder Personen festlegen, die deine Migrationsvorgänge durchführen sollen. Du kannst einer Organisation die Migrationsrolle nur in GitHub.com gewähren.

Du kannst die Migrationsrolle einzelnen Benutzer*innen oder einem Team zuweisen. Es wird dringend empfohlen, die Migrationsrolle einem Team zuzuweisen. Anschließend kannst du die Personen, die eine Migration ausführen können, genauer bestimmen, indem du die Teammitgliedschaft anpasst. Weitere Informationen zum Ändern der Teammitgliedschaft findest du unter Organisationsmitglieder zu einem Team hinzufügen oder Organisationsmitglieder aus einem Team entfernen.

Informationen zur Zuweisung der Migrationsrolle sind unter Zuweisen der Migrationsrolle zu finden.

Nachdem du die Migrationsrolle zugewiesen hast, musst du sicherstellen, dass die Migrationsrolle ein personal access token verwendet, das alle Anforderungen für die Ausführung von Migrationsvorgängen erfüllt.

Hinweise:

  • Wenn du ein Repository zwischen zwei Organisationen in GitHub.com migrierst, kannst du die Migrationsrolle für beide Organisationen der gleichen Person oder demselben Team zuweisen. Beide müssen aber separat zugewiesen werden.
  • Du kannst die Migrationsrolle nicht für Unternehmenskonten gewähren. Daher kannst du eine Organisationsmigration nur ausführen, wenn du Besitzerin des Zielunternehmens bist. Du kannst jedoch den Unternehmensbesitzerinnen die Migrationsrolle für die Quellorganisation zuweisen.
  • Die GitHub CLI unterstützt nicht die Zuweisung der Migrationsrolle zu Organisationen in GitHub Enterprise Server. Daher musst du Organisationsbesitzer*in der Quellorganisation sein, um Repositorys von GitHub Enterprise Server zu migrieren.

Erforderliche Rollen

Für die Quelle und das Ziel der Migration sind unterschiedliche Rollen für unterschiedliche Aufgaben erforderlich.

Quellorganization

Aus der folgenden Tabelle geht hervor, welche Rollen welche Aufgaben ausführen können.

AufgabeOrganisationsbesitzerMigrator
Ausführen einer Migration
Zuweisen der Migrationsrolle für Repositorymigrationsvorgänge

Zielorganisation oder Zielunternehmen

Aus der folgenden Tabelle geht hervor, welche Rollen welche Aufgaben ausführen können.

AufgabeEnterprise-InhaberOrganisationsbesitzerMigrator
Migrieren von Organisationen zu einem Unternehmen
Zuweisen der Migrationsrolle für Repositorymigrationsvorgänge
Migrieren von Repositorys zu einer Organisation
Herunterladen eines Migrationsprotokolls
Freigeben von Mannequins

Erforderliche Bereiche für personal access token

Zum Ausführen einer Migration benötigst du ein personal access token, das auf die Zielorganisation (für Repositorymigrationsvorgänge) oder das Unternehmenskonto (für Organisationsmigrationsvorgänge) Zugriff hat. Es ist auch ein weiteres personal access token erforderlich, das auf die Quellorganisation zugreifen kann.

Für andere Aufgaben, z. B. das Herunterladen eines Migrationsprotokolls, benötigst du nur ein personal access token, das auf das Ziel des Vorgangs Zugriff hat.

Welche Bereiche für dein GitHub-personal access token (classic) erforderlich sind, hängt von deiner Rolle und der Aufgabe ab, die du ausführen möchtest.

Hinweis: Du kannst nur ein personal access token (classic) verwenden, kein fine-grained personal access token. Dies bedeutet, dass du GitHub Enterprise Importer nicht verwenden kannst, wenn deine Organisation die Richtlinie „Zugriff auf die Organisation durch personal access tokens (classic) einschränken“ verwendet. Weitere Informationen findest du unter Erzwingen von Richtlinien für persönliche Zugriffstoken in deinem Unternehmen.

AufgabeEnterprise-InhaberOrganisationsbesitzerMigrator
Zuweisen der Migrationsrolle für Repositorymigrationsvorgängeadmin:org
Ausführen einer Repositorymigration (Zielorganisation)repo, admin:org, workflowrepo, read:org, workflow
Herunterladen eines Migrationsprotokollsrepo, admin:org, workflowrepo, read:org, workflow
Freigeben von Mannequinsadmin:org
Ausführen einer Migration (Quellorganisation)read:org, reporead:org, repo
Ausführen einer Organisationsmigration (Zielunternehmen)read:enterprise, admin:org, repo, workflow

Gewähren der Migrationsrolle

Um einer anderen Person als ein Organisationsbesitzer das Ausführen einer Repository-Migration oder das Herunterladen von Migrationsprotokollen zu ermöglichen, können einem Benutzer oder Team die Migrationsrolle zuweisen. Weitere Informationen finden Sie unter „Informationen zur Migrationsrolle“.

Sie können die Migrationsrolle entweder über GEI extension of the GitHub CLI oder über die GraphQL-API zuweisen.

Zuweisen der Migrationsrolle mit der GEI extension

Zum Zuweisen der Migrationsrolle über die CLI muss GEI extension of the GitHub CLI installiert sein. Weitere Informationen findest du unter Migrieren von Repositorys von GitHub.com zu GitHub Enterprise Cloud.

  1. Erstelle auf GitHub.com ein personal access token, das alle Anforderungen für die Zuweisung der Rolle „Migrator“ erfüllt, und speichere es. Weitere Informationen sind unter Erstellen eines personal access token für GitHub Enterprise Importer zu finden.

  2. Lege das personal access token als Umgebungsvariable fest, und ersetze in den folgenden Befehlen TOKEN durch das personal access token, das du oben gespeichert hast.

    • Wenn du ein Terminal verwendest, führe den Befehl export aus.

      Shell
      export GH_PAT="TOKEN"
      
    • Wenn du PowerShell verwendest, führe den Befehl $env aus.

      Shell
      $env:GH_PAT="TOKEN"
      
  3. Verwende den Befehl gh gei grant-migrator-role, und ersetze ORGANIZATION durch die Organisation, der du die Migrationsrolle zuweisen möchtest, ACTOR durch den Benutzer- oder Teamnamen und TYPE durch USER oder TEAM.

    Shell
    gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
    

Gewähren der Migrationsrolle mit der GraphQL-API

Du kannst die GraphQL-Mutation grantMigratorRole verwenden, um die Migrationsrolle zuzuweisen, und die revokeMigratorRole-Mutation, um die Migrationsrolle zu widerrufen.

Du musst ein personal access token (PAT) verwenden, das alle Zugriffsanforderungen erfüllt. Weitere Informationen sind unter „Erforderliche Bereiche für personal access token“ zu finden.

grantMigratorRole-Mutation

Diese GraphQL-Mutation legt die Migrationsrolle fest.

mutation grantMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  grantMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}
AbfragevariableBeschreibung
organizationIdDie ownerId (oder Organisations-ID) deiner Organisation aus der GetOrgInfo-Abfrage.
actorDer Team- oder Benutzername, dem du die Migrationsrolle zuweisen möchtest.
actor_typeGib an, ob es die Migrationsrolle einem USER oder einem TEAM zugewiesen wird.

revokeMigratorRole-Mutation

Diese Mutation entfernt die Migrationsrolle.

mutation revokeMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  revokeMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}

Erstellen eines personal access token für GitHub Enterprise Importer

  1. Vergewissere dich, dass du über eine ausreichende Rolle für die Aufgabe verfügen, die du ausführen möchtest. Weitere Informationen findest du unter Erforderliche Rollen.
  2. Erstelle ein personal access token (classic), und stelle sicher, dass du alle Bereiche zuweist, die für die auszuführende Aufgabe erforderlich sind. Du kannst nur ein personal access token (classic) verwenden, kein fine-grained personal access token. Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken und Erforderliche Bereiche für personal access token.
  3. Wenn einmaliges Anmelden mit SAML für die Organisationen erzwungen wird, auf die du zugreifen musst, autorisierst du das personal access token für einmaliges Anmelden. Weitere Informationen findest du unter Ein persönliches Zugriffstoken für die Verwendung mit SAML Single Sign-On autorisieren.

Konfigurieren von Listen zugelassener IP-Adressen für Migrationsvorgänge

Wenn die Quelle oder das Ziel deiner Migration eine Liste zugelassener IP-Adressen verwendet (entweder das Feature für Listen zugelassener IP-Adressen von GitHub oder die Einschränkungen für Listen zugelassener IP-Adressen deines Identitätsanbieters (IdP) (z. B. Azure CAP), musst du die Listen zugelassener IP-Adressen auf GitHub.com konfigurieren.

  • Wenn du das Feature für Listen zugelassener IP-Adressen von GitHub verwendest, musst du der Positivliste die unten angegebenen GitHub-IP-Bereiche für die Quell- und/oder Zielorganisationen hinzufügen.
  • Wenn du die Liste zugelassener IP-Adressen deines Identitätsanbieters verwendest, um den Zugriff auf dein Unternehmen in GitHub.com einzuschränken, solltest du diese Einschränkungen in den Einstellungen deines Unternehmenskontos deaktivieren, bis die Migration abgeschlossen ist.

Weitere Informationen findest du unter Verwaltung erlaubter IP-Adressen für deine Organisation und unter Einschränken des Netzwerkdatenverkehrs in deinem Unternehmen mit einer Liste zugelassener IP-Adressen.

Wenn die Quelle deiner Migration GitHub Enterprise Server ist, musst du deiner Firewallkonfiguration oder der Liste zugelassener IP-Adressen für deine GitHub Enterprise Server-Instanz keine GitHub-IP-Bereiche hinzufügen. Je nach Setup deines Blobspeicheranbieters musst du jedoch möglicherweise die Konfiguration deines Blobspeicheranbieters anpassen, um den Zugriff auf die unten angegebenen GitHub-IP-Bereiche zu ermöglichen.

Identifizieren der IP-Bereiche von GitHub

Sie müssen ihrer IP-Zulassungsliste die folgenden IP-Bereiche hinzufügen:

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 40.71.233.224/28
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 20.125.12.8/29 (aktiv seit 00:00 UTC am 8. November 2023)

Mit dem Endpunkt „Get GitHub meta information“ der REST-API können Sie jederzeit eine aktuelle Liste der von GitHub Enterprise Importer verwendeten IP-Bereiche abrufen.

Der github_enterprise_importer-Schlüssel in der Antwort enthält eine Liste der IP-Bereiche, die für Migrationsvorgänge verwendet werden.

Weitere Informationen findest du unter REST-API-Endpunkte für Metadaten.

Weiterführende Themen