Skip to main content

Exportation de données de migration à partir de GitHub Enterprise Server

Pour changer de plateforme ou passer d’une instance d’essai à une instance de production, vous pouvez exporter les données de migration d’une instance GitHub Enterprise Server en préparant l’instance, en verrouillant les dépôts et en générant une archive de migration.

Préparation de l’instance source de GitHub Enterprise Server

  1. Vérifiez que vous êtes administrateur de site de l’instance source de GitHub Enterprise Server. Pour cela, la meilleure méthode consiste à vérifier que vous pouvez accéder à SSH sur l’instance.

  2. Générer un jeton d’accès avec les étendues repo et admin:org sur l’instance source de GitHub Enterprise Server.

  3. Pour réduire le temps d’arrêt, créez une liste de dépôts que vous souhaitez exporter à partir de l’instance source. Vous pouvez ajouter plusieurs dépôts à la fois à une exportation à l’aide d’un fichier texte qui liste l’URL de chaque dépôt sur une ligne distincte.

Exportation des dépôts sources de GitHub Enterprise Server

Remarque : le verrouillage d’un dépôt empêche tout accès en écriture à celui-ci. Vous ne pouvez pas associer de nouvelles équipes ou de nouveaux collaborateurs à un dépôt verrouillé.

Si vous effectuez une évaluation, vous n’avez pas besoin de verrouiller le dépôt. Lorsque vous migrez des données à partir d’un dépôt en cours d’utilisation, GitHub recommande vivement de verrouiller le dépôt. Pour plus d’informations, consultez « À propos de ghe-migrator ».

  1. Connexion SSH à GitHub.com. Si votre instance comprend plusieurs nœuds, par exemple si la haute disponibilité ou la géoréplication sont configurées, connectez-vous via SSH au nœud principal. Si vous utilisez un cluster, vous pouvez vous connecter via SSH à n’importe quel nœud. Remplacez HOSTNAME par le nom d’hôte de votre instance, le nom d’hôte ou l’adresse IP d’un nœud. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Pour préparer un dépôt à exporter, utilisez la commande ghe-migrator add avec l’URL du dépôt :

    • Si vous verrouillez le dépôt, ajoutez --lock à la commande. Si vous effectuez un essai, --lock n’est pas nécessaire.

      ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
      
    • Vous pouvez exclure les fichiers joints en ajoutant --exclude_attachments à la commande. Les fichiers joints peuvent être volumineux et risquent d'alourdir inutilement votre archive de migration finale.

    • Pour préparer plusieurs dépôts à la fois pour l’exportation, créez un fichier texte listant chaque URL de dépôt sur une ligne distincte, puis exécutez la commande ghe-migrator add avec l’indicateur -i et le chemin de votre fichier texte.

      ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
      
  3. Quand vous y êtes invité, entrez votre nom d’utilisateur GitHub Enterprise Server :

    Enter username authorized for migration:  admin
    
  4. Quand vous êtes invité à entrer un personal access token, entrez le jeton d’accès que vous avez créé à l’étape « Préparation de l’instance source de GitHub Enterprise Server » :

    Enter personal access token:  **************
    
  5. À la fin de l’exécution de la commande ghe-migrator add, elle affiche le « GUID de migration » unique qu’elle a généré pour identifier cette exportation ainsi qu’une liste des ressources qui ont été ajoutées à l’exportation. Vous utiliserez le GUID de migration qu’elle a généré dans les étapes ghe-migrator add et ghe-migrator export suivantes pour indiquer à la commande ghe-migrator de continuer à fonctionner sur la même exportation.

    > 101 models added to export
    > Migration GUID: EXAMPLE-MIGRATION-GUID
    > Number of records in this migration:
    > users                        |  5
    > organizations                |  1
    > repositories                 |  1
    > teams                        |  3
    > protected_branches           |  1
    > pull_request_reviews         |  1
    > milestones                   |  1
    > issues                       |  3
    > pull_requests                |  5
    > pull_request_review_comments |  4
    > commit_comments              |  2
    > issue_comments               | 10
    > issue_events                 | 63
    > releases                     |  3
    > attachments                  |  4
    > projects                     |  2
    

    Chaque fois que vous ajoutez un nouveau dépôt avec un GUID de migration existant, l’exportation existante est mise à jour. Si vous réexécutez la commande ghe-migrator add sans GUID de migration, elle démarre une nouvelle exportation et génère un nouveau GUID de migration. Ne réutilisez pas le GUID de migration généré pendant une exportation quand vous commencez à préparer votre migration pour l’importation.

  6. Pour ajouter d’autres dépôts à la même exportation, utilisez la commande ghe-migrator add avec l’indicateur -g. Vous passerez la nouvelle URL du dépôt et le GUID de migration obtenu à l’étape 5 :

    ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
    
  7. Quand vous avez terminé d’ajouter des dépôts, générez l’archive de migration à l’aide de la commande ghe-migrator export avec l’indicateur -g et le GUID de migration obtenu à l’étape 5 :

    $ ghe-migrator export -g MIGRATION-GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz
    
    • Pour spécifier où ranger les fichiers de migration, ajoutez --staging-path=/full/staging/path à la commande. La valeur par défaut est /data/user/tmp.
  8. Mettez fin à la connexion à GitHub.com :

    $ exit
    > logout
    > Connection to HOSTNAME closed.
    
  9. Copiez l’archive de migration sur votre ordinateur avec la commande scp. Le fichier d’archive est nommé avec le GUID de migration :

    scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
    
  10. Pour préparer les données de migration archivées à importer dans une instance GitHub Enterprise Server, consultez « Migration de données vers GitHub Enterprise Server ».