Skip to main content

Administración del acceso para una migración entre productos de GitHub

Antes de usar GitHub Enterprise Importer, asegúrese de que tiene el acceso adecuado tanto al origen como al destino de la migración.

Información sobre el acceso necesario para GitHub Enterprise Importer

Para proteger los datos, GitHub aplica requisitos de acceso específicos para usar GitHub Enterprise Importer. Estos requisitos varían en función de la tarea que intentas realizar. Para evitar errores, debes revisar este artículo cuidadosamente y comprobar que cumples todos los requisitos de la tarea que quieres completar.

Para ejecutar una migración, necesitas acceso suficiente tanto al origen como al destino de la migración.

¿Cuáles son mi origen y destino?

El origen es la organización de GitHub.com o GitHub Enterprise Server desde la que quiere migrar datos.

El destino puede ser:

  • Una cuenta de organización en GitHub.com o GHE.com, si va a migrar repositorios
  • Una cuenta empresarial en GitHub.com o GHE.com, si va a migrar toda una organización

¿Qué acceso necesito?

Para tener acceso suficiente para la migración, tanto para el origen como para el destino, necesitas lo siguiente.

  • Un rol necesario en una cuenta de organización o empresarial
  • Un personal access token que puede acceder a la organización o a la cuenta empresarial
    • personal access token debe tener todos los ámbitos necesarios, que dependen de su rol y de la tarea que desea completar.
    • Si el origen o el destino usa el inicio de sesión único de SAML para GitHub.com, debe autorizar personal access token para el inicio de sesión único.

Además, si usa listas de IP permitidas en el origen o el destino, es posible que tenga que configurar esas listas para permitir el acceso por parte de GitHub Enterprise Importer.

Si es la primera vez que migra desde GitHub Enterprise Server 3.8 o una versión superior, también necesita a alguien con acceso a Consola de administración para configurar el almacenamiento de blobs para tu instancia de GitHub Enterprise Server.

Acerca del rol de migrador

Para quitar la necesidad de que los propietarios de la organización completen las migraciones, en GitHub se incluye un rol único para usar GitHub Enterprise Importer.

La concesión del rol de migración te permite designar otros equipos o individuos para controlar las migraciones.

  • Solo puedes conceder el rol de migración para una organización en GitHub.com o GHE.com.
  • Puedes conceder el rol de migración a un usuario individual o a un equipo. Se recomienda encarecidamente asignar el rol de migración a un equipo. Después, puedes personalizar aún más quién puede ejecutar una migración si ajustas la pertenencia al equipo. Consulta Agregar miembros de la organización a un equipo o Eliminar de un equipo a miembros de la organización.
  • El responsable de la migración debe usar una instancia de personal access token que cumpla todos los requisitos para ejecutar migraciones.

Advertencia

Cuando se concede el rol de migrador en una organización a un usuario o equipo, se le concede la capacidad de importar o exportar cualquier repositorio de esa organización.

Para conceder el rol de migración, consulta Concesión del rol de migración.

Nota:

  • Si va a migrar un repositorio entre dos organizaciones, puede conceder el rol de migrador a la misma persona o equipo para ambas organizaciones, pero debe hacerlo por separado.
  • El rol de migrador de las cuentas empresariales no se puede conceder. Por tanto, solo puedes ejecutar una migración de la organización si eres propietario de la empresa de destino. Sin embargo, puedes conceder el rol de migrador al propietario de la empresa para la organización de origen.

GitHub CLI no admite la asignación del rol de migrador a las organizaciones en GitHub Enterprise Server, por lo que debe ser el propietario de la organización de origen para migrar repositorios desde GitHub Enterprise Server.

Roles necesarios

Para el origen y el destino de la migración, se requieren distintos roles para diferentes tareas.

Organización de origen

En la tabla siguiente se muestran qué roles pueden realizar qué tareas.

TareaPropietario de la organizaciónResponsable de la migración
Ejecución de una migración
Asignación del rol de migrador para la migración de repositorios

Organización o empresa de destino

En la tabla siguiente se muestran qué roles pueden realizar qué tareas.

TareaPropietario de empresaPropietario de la organizaciónResponsable de la migración
Migración de organizaciones a una empresa
Asignación del rol de migrador para la migración de repositorios
Migración de repositorios a una organización
Descarga de un registro de migración
Recuperación de maniquíes

Ámbitos necesarios para personal access tokens

Para ejecutar una migración, necesita un personal access token que pueda acceder a la organización de destino (para migraciones de repositorios) o a una cuenta empresarial (para migraciones de la organización). También necesita otro personal access token que pueda acceder a la organización de origen.

Para otras tareas, como descargar un registro de migración, solo se necesita un personal access token que tenga acceso al destino de la operación.

Los ámbitos necesarios para su GitHubpersonal access token (classic) función dependen de su rol y de la tarea que desea completar.

Nota:

Solo puedes usar un personal access token (classic), no un fine-grained personal access token. Esto significa que no puede usar GitHub Enterprise Importer si su organización usa la directiva "Restringir el acceso de personal access tokens (classic) a sus organizaciones". Para más información, consulta Imposición de políticas para tokens de acceso personales en su empresa.

TareaPropietario de empresaPropietario de la organizaciónResponsable de la migración
Asignación del rol de migrador para la migración de repositoriosadmin:org
Ejecución de una migración de repositorios (organización de destino)
repo, , admin:org, workflow
repo, , read:org, workflow
Descarga de un registro de migración
repo, , admin:org, workflow
repo, , read:org, workflow
Recuperación de maniquíesadmin:org
Ejecución de una migración (organización de origen)
admin:org, repo
admin:org, repo
Ejecución de una migración de la organización (empresa de destino)
read:enterprise, admin:org, , repo, workflow

Concesión del rol de migración

Para permitir que alguien que no sea propietario de la organización ejecute una migración del repositorio o descargue registros de migración, puedes conceder el rol de migración a un usuario o equipo. Para obtener más información, consulta Acerca del rol de migrador.

Puede conceder el rol de migrador mediante GEI extension of the GitHub CLI o la API de GraphQL.

Conceder el rol de migrador con el GEI extension

Para conceder el rol de migrador mediante la CLI, debe tener instalado el GEI extension of the GitHub CLI. Para más información, consulta Migración de repositorios desde GitHub.com a GitHub Enterprise Cloud.

  1. En GitHub.com, cree y registre un personal access token que cumpla todos los requisitos necesarios para conceder el rol de migrador. Para obtener más información, consulte Creación de personal access token para GitHub Enterprise Importer.

  2. Establece personal access token como una variable de entorno, y reemplaza TOKEN en los comandos siguientes por el valor personal access token que has registrado antes.

    • Si usas Terminal, utiliza el comando export.

      Shell
      export GH_PAT="TOKEN"
      
    • Si usas PowerShell, utiliza el comando $env.

      Shell
      $env:GH_PAT="TOKEN"
      
  3. Usa el comando gh gei grant-migrator-role, y reemplaza ORGANIZATION por la organización a la que quieras conceder el rol de migración, ACTOR por el nombre de usuario o equipo, y TYPE por USER o TEAM.

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

    Nota:

    Si vas a conceder el rol de migración para GHE.com, también debes incluir la dirección URL de la API de destino para el subdominio de la empresa. Por ejemplo: --target-api-url https://api.octocorp.ghe.com.

Concesión del rol de migrador con la API de GraphQL

Puedes usar la mutación grantMigratorRole de GraphQL para asignar el rol de migración y la mutación revokeMigratorRole para revocarlo.

Debes usar una instancia de personal access token (PAT) que cumpla todos los requisitos de acceso. Para más información, consulta Ámbitos obligatorios para instancias de personal access token.

Mutación grantMigratorRole

Esta mutación de GraphQL establece el rol de migración.

mutation grantMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  grantMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}
Variable de consultaDescripción
organizationIdValor ownerId (o id. de organización) de la organización, de la consulta GetOrgInfo.
actorEquipo o nombre de usuario al que quieres asignar el rol de migración.
actor_typeEspecifica si el responsable de la migración es USER o TEAM.

Mutación revokeMigratorRole

Esta mutación elimina el rol de migración.

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

Creación de un personal access token para GitHub Enterprise Importer

  1. Comprueba que tienes un rol suficiente para la tarea que quieres completar. Para más información, consulta Roles obligatorios.
  2. Cree un personal access token (classic), asegurándose de conceder todos los permisos necesarios para la tarea que desea realizar. Solo puedes usar un personal access token (classic), no un fine-grained personal access token. Para obtener más información, Administración de tokens de acceso personal y Ámbitos necesarios para personal access token.
  3. Si se exige el inicio de sesión único de SAML para la organización o las organizaciones a las que necesita acceder, autorice el personal access token para el inicio de sesión único. Para más información, consulta Autorización de un token de acceso personal para su uso con el inicio de sesión único.

Configuración de listas de direcciones IP permitidas para migraciones

Si el origen o el destino de la migración usa una lista de direcciones IP permitidas, ya sea la característica de lista de direcciones IP permitidas de GitHub, o bien las restricciones de lista de direcciones IP permitidas del proveedor de identidades (IdP), como Azure CAP, debe configurar las listas de direcciones IP permitidas en GitHub. Consulta Administrar las direcciones IP permitidas en tu organización y Restricción del tráfico de red a la empresa con una lista de direcciones IP permitidas.

  • Si usas la característica de lista de direcciones IP permitidas de GitHub, tendrás que agregar los intervalos IP de GitHub siguientes a la lista de permitidos para las organizaciones de origen o destino.
  • Si usa la lista de direcciones IP permitidas del IdP para restringir el acceso a la empresa en GitHub, debe deshabilitar estas restricciones en la configuración de la cuenta empresarial hasta que se complete la migración.

Los intervalos IP varían en función de si el destino de la migración es GitHub.com o GHE.com.

Si el origen de la migración es GitHub Enterprise Server, no es necesario agregar ningún GitHub intervalo IP a la configuración del firewall o a la lista de direcciones IP permitidas en tu instancia de GitHub Enterprise Server. Sin embargo, en función de la configuración del proveedor de Blob Storage, es posible que tenga que actualizar la configuración del proveedor de Blob Storage para permitir el acceso a los GitHub intervalos IP siguientes.

Intervalos IP para GitHub.com

Deberás agregar los siguientes intervalos IP a las listas de direcciones IP permitidas:

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 135.234.59.224/28 (agregado el 28 de julio de 2025)
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 20.99.172.64/28 (agregado el 28 de julio de 2025)

Puede obtener una lista actualizada de intervalos IP utilizados por GitHub Enterprise Importer en cualquier momento con el punto de conexión "Obtener metainformación de GitHub" de la API REST.

La clave github_enterprise_importer de la respuesta contiene una lista de los intervalos IP usados para las migraciones.

Para más información, consulta Puntos de conexión de la API de REST para metadatos.

Reglas de cortafuegos de red virtual para Azure Blob Storage para GitHub.com

Los clientes con Azure Blob Storage configurado para almacenar datos del repositorio para migraciones deben agregar reglas de firewall de red virtual a sus cuentas de almacenamiento para permitir que GEI acceda a los datos del repositorio. Para esto es necesario usar la CLI de Azure o PowerShell, ya que actualmente no se admite la adición de estas reglas de firewall de red virtual en Azure Portal. Los siguientes identificadores de subred de red virtual deben agregarse a las reglas de firewall de red virtual de la cuenta de almacenamiento:

  • /subscriptions/cdf1c65c-e6f4-43b3-945f-c5280f104f9c/resourceGroups/ghr-network-service-1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5-westus2/providers/Microsoft.Network/virtualNetworks/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5/subnets/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5
  • /subscriptions/173ad082-b20d-4d44-8257-7fbf34959bed/resourceGroups/ghr-network-service-1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5-westus3/providers/Microsoft.Network/virtualNetworks/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5/subnets/1a72ec6f-45b6-44be-a4bd-f0fe50079c9f-5

Para agregar las reglas de firewall de red virtual a la cuenta de Azure Storage, puedes seguir el paso 5 de la documentación para crear una regla de red virtual para Azure Storage mediante los identificadores de subred de red proporcionados anteriormente. Asegúrate de proporcionar el argumento --subscription con el id. de suscripción asociado a la cuenta de almacenamiento.

Intervalos IP para GHE.com

Puede obtener una lista actualizada de intervalos IP utilizados por GitHub Enterprise Importer en cualquier momento con el punto de conexión "Obtener metainformación de GitHub" de la API REST.

La clave github_enterprise_importer de la respuesta contiene una lista de los intervalos IP usados para las migraciones.

Además, si va a migrar desde GitHub Enterprise Server y usa una cuenta de Blob Storage con reglas de firewall:

  • Debes permitir el acceso a los intervalos IP de salida para GHE.com. Consulta Detalles de red para GHE.com.
  • Si usas Azure Blob Storage, es posible que tengas que realizar alguna configuración de red adicional. Esto puede ocurrir si Azure Blob Storage se encuentra en la misma región que el proceso del servicio de GitHub Enterprise Importer. Ponte en contacto con Soporte de GitHub.

Información adicional