Skip to main content

Gestion de l’accès pour GitHub Enterprise Importer

Avant d’utiliser GitHub Enterprise Importer, veillez à disposer d’un accès approprié à la source et à la destination de votre migration.

À propos de l’accès requis pour GitHub Enterprise Importer

Pour protéger vos données, GitHub applique des conditions d’accès spécifiques pour utiliser GitHub Enterprise Importer. Pour éviter les erreurs, vous devriez lire attentivement cet article et vérifier que vous remplissez toutes les conditions requises pour la tâche que vous souhaitez accomplir.

Pour exécuter une migration, vous avez besoin d’un accès suffisant à la source et à la destination de votre migration. Pour les migrations de dépôts, la destination est une organisation. Pour les migrations d’organisations, la destination est un compte d’entreprise.

Avant de pouvoir migrer à partir de GitHub Enterprise Server 3.8 ou ultérieur pour la première fois, vous avez également besoin d’une personne ayant accès à Management Console pour configurer le stockage de blobs pour votre instance GitHub Enterprise Server.

Pour les autres tâches, vous avez uniquement besoin d’accéder à la cible de l’opération. Par exemple, pour accorder le rôle de migrateur pour une organisation, il vous suffit d’accéder à cette organisation.

Pour avoir un accès suffisant à la source ou à la destination, vous avez besoin des deux éléments suivants :

  • Un rôle requis dans le compte d’organisation ou d’entreprise GitHub
  • Pour Bitbucket Server, autorisations obligatoires, et accès SFTP ou SMB
  • Pour les produits GitHub et Azure DevOps, un personal access token qui peut accéder au compte d’organisation ou d’entreprise
    • Le personal access token doit avoir toutes les étendues requises, qui dépendent de votre rôle et de la tâche que vous souhaitez effectuer.
    • Si la source ou la destination utilise l’authentification unique SAML pour GitHub.com, vous devez autoriser le personal access token pour l’authentification unique.

De plus, si vous utilisez des listes d’adresses IP autorisées avec la source ou la destination, vous devrez peut-être configurer les listes pour autoriser l’accès par GitHub Enterprise Importer.

Rôles requis pour GitHub

Lors de la migration vers ou depuis des produits GitHub, différents rôles sont requis pour différentes tâches.

TâchePropriétaire d’entreprisePropriétaire de l'organisationMigrateur
Exécution d’une migration (organisation source)
XX
Exécution d’une migration d’organisation (entreprise de destination)X
Attribution du rôle de migrateur pour les migrations de dépôts
X
Exécution d’une migration de dépôts (organisation de destination)
XX
Téléchargement d’un journal de migration
XX
Récupération de mannequins
X

Autorisations requises pour Bitbucket Server

Pour effectuer une migration à partir de Bitbucket Server, vous devez avoir :

  • Nom d’utilisateur et mot de passe d’un compte Bitbucket Server disposant d’autorisations d’administrateur ou de super administrateur
  • Si vos instances Bitbucket Server s’exécutent sur Linux, accès SFTP à l’instance Bitbucket Server (consultez « Clés SSH »). En général, si vous pouvez accéder au serveur via SSH, vous pouvez également utiliser SFTP.
  • Si votre instance Bitbucket Server s’exécute sur Windows, accès du partage de fichiers (SMB) à l’instance

Clés SSH

Si votre instance Bitbucket Server s’exécute sur Linux, vous devez utiliser une clé SSH qui répond aux conditions suivantes :

  • N’a pas de phrase secrète
  • Utilise l’un des chiffrements suivants
    • aes256-ctr
    • 3des-cbc
    • aes128-cbc
    • aes192-cbc
    • aes256-cbc
    • blowfish-cbc
    • twofish-cbc
    • twofish192-cbc
    • twofish128-cbc
    • twofish256-cbc
    • arcfour
    • arcfour128
    • arcfour256
    • cast128-cbc
    • aes128-ctr
    • aes192-ctr

Si vous recevez une erreur comme cipher name aes256-ctr for openssh key file is not supported lors de l’exécution d’une migration, votre clé privée SSH utilise un chiffrement non pris en charge. Pour plus d’informations sur la génération d’une clé privée compatible, consultez « Résolution des problèmes de votre migration avec GitHub Enterprise Importer ».

Étendues requises pour les personal access token

Pour exécuter une migration, vous avez besoin d’un personal access token pouvant accéder à l’organisation de destination (pour les migrations de dépôts) ou au compte d’entreprise (pour les migrations d’organisations). Si votre source est un produit GitHub ou Azure DevOps, vous avez également besoin d’un autre personal access token pouvant accéder à l’organisation source.

Pour d’autres tâches, telles que le téléchargement d’un journal de migration, vous n’avez besoin que d’un personal access token pouvant accéder à la cible de l’opération.

Personal access token pour les produits GitHub

Les étendues requises pour votre personal access token GitHub dépendent de votre rôle et de la tâche que vous souhaitez effectuer.

Remarque : Vous pouvez uniquement utiliser un personal access token, pas un fine-grained personal access token. Cela signifie que vous ne pouvez pas utiliser GitHub Enterprise Importer si votre organisation utilise la stratégie « Restreindre personal access tokens pour l’accès à vos organisations ». Pour plus d’informations, consultez « Application de stratégies pour les jetons d’accès personnels dans votre entreprise ».

TâchePropriétaire d’entreprisePropriétaire de l'organisationMigrateur
Exécution d’une migration (organisation source)-read:org, reporead:org, repo
Exécution d’une migration d’organisation (entreprise de destination)read:enterprise, admin:org, repo, workflow--
Attribution du rôle de migrateur pour les migrations de dépôts-admin:org-
Exécution d’une migration de dépôts (organisation de destination)-repo, admin:org, workflowrepo, read:org, workflow
Téléchargement d’un journal de migration-repo, admin:org, workflowrepo, read:org, workflow
Récupération de mannequins-admin:org-

Personal access token pour Azure DevOps

Pour exécuter une migration à partir d’Azure DevOps (ADO), votre personal access token ADO doit avoir les étendues work item (read), code (read) et identity (read).

Si vous souhaitez migrer à partir de plusieurs organisations, autorisez le personal access token à accéder à toutes les organisations accessibles. Pour plus d’informations, consultez Utiliser des personal access token dans Microsoft Docs.

Création d’un personal access token pour GitHub Enterprise Importer

  1. Veillez à disposer d’un rôle suffisant pour la tâche que vous souhaitez effectuer. Pour plus d’informations, consultez « Rôles requis ».
  2. Créez un personal access token, en veillant à accorder toutes les étendues requises pour la tâche que vous souhaitez effectuer. Vous pouvez uniquement utiliser un personal access token, pas un fine-grained personal access token. Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels » et « Étendues requises pour personal access token ».
  3. Si une authentification unique SAML est appliquée pour la ou les organisations à laquelle vous devez accéder, autorisez le personal access token pour l’authentification unique. Pour plus d’informations, consultez « Autorisation d’un jeton d’accès personnel à utiliser avec l’authentification unique SAML ».

Configuration de listes d’adresses IP autorisées pour les migrations

Si vous utilisez des listes d’adresses IP autorisées avec la source ou la destination de votre migration, vous devrez peut-être configurer les listes pour autoriser l’accès à GitHub Enterprise Importer.

Pour configurer correctement les listes d’adresses IP autorisées, lisez attentivement les sections suivantes. Selon votre migration, plusieurs sections peuvent s’appliquer à vous.

La source ou la destination de votre migration est GitHub.com

Vous devez configurer les listes d’adresses IP autorisées sur GitHub.com si les deux caractéristiques suivantes s’appliquent à votre migration :

  • La source ou la destination de votre migration est GitHub.com
  • La source ou la destination utilise une liste d’adresses IP autorisées, soit la fonctionnalité de liste d’adresses IP autorisées de GitHub, soit les restrictions de la liste d’adresses IP autorisées de votre fournisseur d’identité (IdP) (par exemple, Azure CAP)

Si vous utilisez la fonctionnalité de liste d’adresses IP autorisées de GitHub, vous devez ajouter les plages d’adresses IP de GitHub ci-dessous à la liste pour les organisations sources et/ou de destination.

Si vous utilisez la liste d’adresses IP autorisées de votre IdP pour restreindre l’accès à votre entreprise sur GitHub.com, vous devez désactiver ces restrictions dans les paramètres de votre compte d’entreprise jusqu’à ce que votre migration soit terminée.

Pour plus d’informations, consultez « Gestion des adresses IP autorisées pour votre organisation » et « Restriction du trafic réseau vers votre entreprise avec une liste d’adresses IP autorisées ».

La source de votre migration est GitHub Enterprise Server

Si la source de votre migration est GitHub Enterprise Server, vous n’avez pas besoin d’ajouter des plages d’adresses IP GitHub à votre configuration de pare-feu ou à la liste d’adresses IP autorisées sur votre instance GitHub Enterprise Server.

Toutefois, en fonction de la configuration de votre fournisseur de stockage de blobs, vous devrez peut-être mettre à jour la configuration de votre fournisseur de stockage de blobs pour autoriser l’accès aux plages d’adresses IP GitHub ci-dessous.

Identification des plages d’adresses IP de GitHub

Vous devez ajouter les plages d’adresses IP suivantes à votre ou vos listes d’adresses IP autorisées :

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 40.71.233.224/28 (actif à partir de 00:00 UTC le 18 septembre 2023)

Vous pouvez obtenir une liste à jour des plages d’adresses IP utilisées par GitHub Enterprise Importer à tout moment avec le point de terminaison « Obtenir GitHub les méta informations » de l’API REST.

La clé github_enterprise_importer dans la réponse contient une liste de plages d’adresses IP utilisées pour les migrations.

Pour plus d’informations, consultez « Meta » dans la documentation de l’API REST.

Pour aller plus loin