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.
| Tarea | Propietario de la organización | Responsable 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.
| Tarea | Propietario de empresa | Propietario de la organización | Responsable 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.
| Tarea | Propietario de empresa | Propietario de la organización | Responsable de la migración |
|---|---|---|---|
| Asignación del rol de migrador para la migración de repositorios | admin: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íes | admin: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.
- Asignación del rol de migrador con GEI extension
- Concesión del rol de migrador con 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.
-
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.
-
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"
export GH_PAT="TOKEN" -
Si usas PowerShell, utiliza el comando
$env.Shell $env:GH_PAT="TOKEN"
$env:GH_PAT="TOKEN"
-
-
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 porUSERoTEAM.Shell gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPENota:
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 consulta | Descripción |
|---|---|
organizationId | Valor ownerId (o id. de organización) de la organización, de la consulta GetOrgInfo. |
actor | Equipo o nombre de usuario al que quieres asignar el rol de migración. |
actor_type | Especifica 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
- Comprueba que tienes un rol suficiente para la tarea que quieres completar. Para más información, consulta Roles obligatorios.
- 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.
- 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.