À 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.
Prérequis
- 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 exécutions d’essai, consultez « Vue d’ensemble d’une migration entre produits GitHub ».
- Assurez-vous que vous comprenez les données qui seront migrées et les limitations de prise en charge connues de l’importateur. Pour plus d’informations, consultez « Informations sur les migrations entre les produits GitHub ».
- 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 « Gestion de l'accès pour une migration entre les produits GitHub ».
- 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
Pour créer des requêtes GraphQL, vous devez écrire vos propres scripts ou utiliser un client HTTP comme Insomnia.
Pour en savoir plus sur l’utilisation de l’API GraphQL GitHub, notamment sur la façon de s’authentifier, consultez « 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ête | Description |
---|---|
slug | Slug 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ête | Description |
---|---|
sourceOrgUrl | URL de l’organisation source, par exemple https://github.com/octo-org . |
targetOrgName | Nom que vous souhaitez que la nouvelle organisation porte. Doit être unique sur GitHub.com. |
targetEnterpriseId | ID de l’entreprise dans laquelle vous souhaitez créer la nouvelle organisation, retourné à l’étape 2. |
sourceAccessToken | Votre personal access token pour l’organisation source. Pour connaître les conditions requises, consultez « Gestion de l'accès pour une migration entre les produits GitHub ». |
targetAccessToken | Votre personal access token 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ête | Description |
---|---|
id | id de votre migration. |
Étape 1 : Installer l’GEI extension of the GitHub CLI
S’il s’agit de votre première migration, vous devez installer GEI extension of the GitHub CLI. Pour plus d’informations sur GitHub CLI, consultez « À propos de GitHub CLI ».
-
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
. -
Installez GEI extension.
Shell gh extension install github/gh-gei
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
GEI extension est mis à jour toutes les semaines. Pour être sûr d’utiliser la version la plus récente, mettez à jour l’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 qui peuvent accéder à l’organisation source et à l’entreprise de destination, puis définir les personal access tokens comme variables d’environnement.
-
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 une migration entre les produits GitHub ».
-
Créez et enregistrez un personal access token qui répond à toutes les conditions requises d’authentification pour l’entreprise de destination pour les migrations d’organisation.
-
Définissez les variables d’environnement pour les personal access tokens, en remplaçant TOKEN dans les commandes ci-dessous par les personal access tokens que vous avez enregistrés ci-dessus. Utilisez
GH_PAT
pour l’entreprise de destination etGH_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"
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"
$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
.
gh gei migrate-org --github-source-org SOURCE --github-target-org DESTINATION --github-target-enterprise ENTERPRISE
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.