Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Migration d’organisations de GitHub.com vers GitHub Enterprise Cloud

Vous pouvez migrer des organisations de GitHub.com vers GitHub Enterprise Cloud en utilisant l’GitHub CLI ou l’API GraphQL.

Remarque : GitHub Enterprise Importer est actuellement en version bêta publique et peut faire l’objet de modifications.

À propos des migrations d’organisations avec GitHub Enterprise Importer

Vous pouvez exécuter votre migration avec GitHub CLI ou l’API.

GitHub CLI simplifie le processus de migration et est recommandé pour la plupart des clients. Les clients avancés avec de grands besoins de personnalisation peuvent utiliser l’API pour créer leurs propres intégrations avec GitHub Enterprise Importer.

Pour voir les instructions d’utilisation de l’API, utilisez le sélecteur d’outils en haut de la page.
To see instructions for using the GitHub CLI, use the tool switcher at the top of the page.

Prérequis

  • Pour veiller à bien comprendre les limitations connues du support de l’importateur, consultez « À propos de GitHub Enterprise Importer ».
  • Nous vous recommandons vivement d’effectuer une exécution d’essai de votre migration et d’effectuer votre migration de production peu après. Pour en savoir plus sur les bonnes pratiques relatives aux exécutions d’essai, consultez « Préparation à l’exécution d’une migration avec GitHub Enterprise Importer ».
  • Bien que cela ne soit pas obligatoire, nous vous recommandons d’interrompre votre travail pendant votre migration de production. Importer ne prend pas en charge les migrations delta, donc aucune modification apportée pendant la migration ne sera migrée. Si vous choisissez de ne pas interrompre le travail pendant votre migration de production, vous devrez migrer manuellement ces modifications.
  • Pour l’organisation source, vous devez être propriétaire d’organisation ou avoir le rôle de migrateur. Pour plus d’informations, consultez « Octroi du rôle de migrateur pour GitHub Enterprise Importer ».
  • Pour le compte d’entreprise de destination, vous devez être propriétaire d’entreprise.

Étape 0 : Se préparer pour utiliser l’API GraphQL GitHub

To make GraphQL queries, you'll need to write your own scripts or use an HTTP client like Insomnia.

To learn more about getting started with the GitHub GraphQL API, including how to authenticate, see "Formation d’appels avec GraphQL."

Étape 1 : Obtenir l’ID d’entreprise de la destination de votre migration

En tant que propriétaire d’entreprise sur GitHub.com, utilisez la requête suivante pour retourner l’ID de compte d’entreprise que vous souhaitez posséder pour l’organisation migrée. Vous avez besoin de l’ID d’entreprise pour identifier votre destination de migration.

query(
  $slug: String!
){
  enterprise (slug: $slug)
  {
    slug
        id
  }
}

Variable de requêteDescription
slugSlug pour votre compte d’entreprise, que vous pouvez identifier en examinant l’URL de votre entreprise, https://github.com/enterprises/SLUG.

Étape 2 : Démarrer votre migration d’organisation

Lorsque vous démarrez une migration, une seule organisation et ses données associées migrent vers une toute nouvelle organisation dans l’entreprise de destination que vous identifiez.

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
    }
  }
}
Variable de requêteDescription
sourceOrgUrlURL de l’organisation source, par exemple https://github.com/octo-org.
targetOrgNameNom que vous souhaitez que la nouvelle organisation porte. Doit être unique sur GitHub.com.
targetEnterpriseIdID de l’entreprise dans laquelle vous souhaitez créer la nouvelle organisation, retourné à l’étape 2.
sourceAccessTokenVotre personal access token (classic) pour l’organisation source. Pour connaître les conditions requises, consultez « Gestion de l’accès pour GitHub Enterprise Importer ».
targetAccessTokenVotre personal access token (classic) pour l’entreprise de destination.

À l’étape suivante, vous allez utiliser l’ID de migration retourné par la mutation startOrganizationMigration pour vérifier l’état de la migration.

Étape 3 : Vérifier l’état de votre migration

Pour détecter les échecs de migration et vous assurer que votre migration fonctionne, vous pouvez interroger la ou les mutations OrganizationMigration que vous avez créées pour voir l’état de la migration à l’aide de la requête getMigration.

La requête est retournée avec un état qui vous indique si la migration est queued, in progress, failed ou completed, ainsi que des informations sur le nombre de dépôts en attente de migration. Si votre migration a échoué, Importer fournit la raison de l’échec.

query (
  $id: ID!
){
  node( id: $id ) {
    ... on OrganizationMigration {
      id
            sourceOrgUrl
            targetOrgName
      state
      failure_reason
      remaining_repositories_count
      total_repositories_count
    }
  }
}
Variable de requêteDescription
idid de votre migration.

Étape 1 : Installer l’GEI extension of the GitHub CLI

If this is your first migration, you'll need to install the GEI extension of the GitHub CLI. For more information about the GitHub CLI, see "À propos de GitHub CLI."

  1. Installez GitHub CLI. Pour obtenir des instructions d’installation pour GitHub CLI, consultez le dépôt GitHub CLI.

    Remarque : Vous devez avoir la version 2.4.0 ou ultérieure de GitHub CLI. Vous pouvez vérifier la version que vous avez installée avec la commande gh --version.

    1. Installez GEI extension.
    Shell
    gh extension install github/gh-gei

Dès que vous avez besoin d’aide sur GEI extension, vous pouvez utiliser l’indicateur --help avec une commande. Par exemple, gh gei --help liste toutes les commandes disponibles et gh gei migrate-repo --help liste toutes les options disponibles pour la commande migrate-repo.

Étape 2 : Mettre à jour l’GEI extension of the GitHub CLI

The GEI extension is updated weekly. To make sure you're using the latest version, update the extension.

gh extension upgrade github/gh-gei

Étape 3 : Définir les variables d’environnement

Avant de pouvoir utiliser GEI extension pour migrer vers GitHub Enterprise Cloud, vous devez créer des personal access tokens (classic) qui peuvent accéder à l’organisation source et à l’entreprise de destination, puis définir les personal access tokens (classic) comme variables d’environnement.

  1. Créez et enregistrez un personal access token qui répond à toutes les conditions requises d’authentification pour l’organisation source pour les migrations d’organisation. Pour plus d’informations, consultez « Gestion de l’accès pour GitHub Enterprise Importer ».

  2. Créez et enregistrez un personal access token (classic) qui répond à toutes les conditions requises d’authentification pour l’entreprise de destination pour les migrations d’organisation.

  3. Définissez les variables d’environnement pour les personal access tokens (classic), en remplaçant TOKEN dans les commandes ci-dessous par les personal access tokens (classic) que vous avez enregistrés ci-dessus. Utilisez GH_PAT pour l’entreprise de destination et GH_SOURCE_PAT pour l’organisation source.

    • Si vous utilisez le Terminal, utilisez la commande export.

      Shell
      export GH_PAT="TOKEN"
      export GH_SOURCE_PAT="TOKEN"
    • Si vous utilisez PowerShell, utilisez la commande $env.

      Shell
      $env:GH_PAT="TOKEN"
      $env:GH_SOURCE_PAT="TOKEN"

Étape 4 : Migrer votre organisation

Pour migrer une organisation, utilisez la commande gh gei migrate-org.

Shell
gh gei migrate-org --github-source-org SOURCE --github-target-org DESTINATION --github-target-enterprise ENTERPRISE

Remplacez les espaces réservés dans la commande ci-dessus par les valeurs suivantes.

Espace réservé | Valeur | ----------- | ----- | SOURCE | Nom de l’organisation source DESTINATION | Nom que vous voulez que votre nouvelle organisation porte. Doit être unique sur GitHub.com. ENTREPRISE | Slug pour votre entreprise de destination, que vous pouvez identifier en examinant l’URL de votre compte d’entreprise, https://github.com/enterprises/SLUG.

Étape 5 : Valider votre migration et consulter le journal des erreurs

Une fois votre migration terminée, nous vous recommandons de vérifier le dépôt du journal de migration. Pour plus d’informations, consultez « Accès à vos journaux de migration pour GitHub Enterprise Importer ».

Enfin, nous vous recommandons de vérifier la solidité de vos dépôts d’organisation et migrés.