Acerca del 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 migrar un repositorio de Bitbucket Server a GitHub, necesitas acceso suficiente tanto al origen (la instancia de Bitbucket Server) como al destino (una organización en GitHub). Para tener acceso suficiente, necesitarás todo lo siguiente.
- Un rol necesario en la organización de destino en GitHub
- Un personal access token que pueda acceder a la organización de destino en GitHub
- La instancia de personal access token debe tener todos los ámbitos necesarios, que dependen de tu rol y de la tarea que quieras completar.
- Si la organización de destino usa el inicio de sesión único de SAML para GitHub, debes autorizar personal access token para el inicio de sesión único.
- En Bitbucket Server, los permisos necesarios y el acceso SFTP o SMB
Además, si usas listas de direcciones IP permitidas en la organización de destino, es posible que tengas que configurar las listas de permitidos para permitir el acceso por GitHub Enterprise Importer.
Acerca del rol de migración
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. Consulte "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.
Warning
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 "Conceder el rol de migración".
Roles obligatorios para GitHub
Para la organización de destino en GitHub, se requieren distintos roles para diferentes tareas.
En la tabla siguiente se enumeran qué tareas pueden realizar qué roles.
Tarea | Propietario de la organización | Responsable de la migración |
---|---|---|
Asignación del rol de migración para las migraciones de repositorio | ||
Ejecución de una migración de repositorio | ||
Descarga de un registro de migración | ||
Reclamación de maniquíes |
Ámbitos obligatorios para instancias de personal access token
Para ejecutar una migración, necesitas un personal access token que pueda acceder a la organización de destino en GitHub.
Los ámbitos necesarios para GitHub personal access token (classic) dependen de tu rol y de la tarea que quieras completar.
Note
Solo puedes usar un personal access token (classic), no un fine-grained personal access token. Esto significa que no puedes usar GitHub Enterprise Importer si tu organización usa la directiva "Restrict personal access tokens (classic) from accessing your organizations". Para obtener más información, vea «Aplicación de directivas de tokens de acceso personal en la empresa».
Tarea | Propietario de la organización | Responsable de la migración |
---|---|---|
Asignación del rol de migración para las migraciones de repositorio | 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 |
Reclamación de maniquíes | admin:org |
Permisos obligatorios para Bitbucket Server
Para realizar la migración desde Bitbucket Server, necesitas lo siguiente:
- El nombre de usuario y la contraseña de una cuenta de Bitbucket Server que tenga permisos de administrador o superadministrador
- Si las instancias de Bitbucket Server se ejecutan en Linux, acceso SFTP a la instancia del servidor Bitbucket (consulta Claves SSH). En general, si puedes acceder al servidor a través de SSH, también puedes usar SFTP.
- Si la instancia de Bitbucket Server se ejecuta en Windows, acceso compartido de archivos (SMB) a la instancia de Bitbucket Server
Claves SSH
Si la instancia de Bitbucket Server se ejecuta en Linux, debes usar una clave SSH que cumpla los requisitos siguientes:
- No tenga una frase de contraseña
- Use uno de los cifrados siguientes
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 se produce un error como cipher name aes256-ctr for openssh key file is not supported
al ejecutar una migración, la clave privada SSH usa un cifrado no admitido. Para más información sobre cómo generar una clave privada compatible, consulta Solución de problemas de la migración con GitHub Enterprise Importer.
Concesión del rol de migración
Para permitir que alguien que no sea propietario de la organización ejecute una migración 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 migración.
Puedes conceder el rol de migración mediante BBS2GH extension of the GitHub CLI o GraphQL API.
- Concesión del rol de migración con la BBS2GH extension
- Concesión del rol de migración con GraphQL API
Concesión del rol de migración con la BBS2GH extension
Para conceder el rol de migración mediante la CLI, debes haber instalado la BBS2GH extension of the GitHub CLI. Para más información, consulta Migración de repositorios desde Bitbucket Server a GitHub Enterprise Cloud.
-
En GitHub, cree y registre una instancia de personal access token que cumpla todos los requisitos para conceder el rol de migración. Para obtener más información, consulta Creación de una instancia 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 bbs2gh 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 porUSER
oTEAM
.Shell gh bbs2gh grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
gh bbs2gh grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
Note
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 migración con GraphQL API
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 obtener 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 una instancia de 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".
- Crea una instancia de personal access token (classic) y asegúrate de conceder todos los ámbitos necesarios para la tarea que quieres completar. Solo puedes usar un personal access token (classic), no un fine-grained personal access token. Para más información, consulta "Administración de tokens de acceso personal" y "Ámbitos obligatorios para personal access token".
- Si se aplica el inicio de sesión único de SAML para las organizaciones a las que necesitas acceder, autoriza la instancia de personal access token para el inicio de sesión único. Para obtener más información, vea «Autorizar un token de acceso personal para usar con un inicio de sesión único de SAML».
Configuración de listas de direcciones IP permitidas para migraciones
Si 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), debe configurar las listas de direcciones IP permitidas en GitHub.
- 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 la organización de 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.
Para más información, 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.
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
- 40.71.233.224/28
- 2a0a:a440::/29
- 2606:50c0::/32
- 20.125.12.8/29 (activo de 00:00 UTC el 8 de noviembre de 2023)
Puedes obtener una lista actualizada de los intervalos IP usados por GitHub Enterprise Importer en cualquier momento con el punto de conexión "Obtener información meta de GitHub" de la API de REST.
La clave github_enterprise_importer
de la respuesta contiene una lista de los intervalos IP usados para las migraciones.
Para obtener más información, vea «Puntos de conexión de la API de REST para metadatos».
Intervalos IP para GHE.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
- 2a0a:a440::/29
- 2606:50c0::/32
- 4.231.155.80/29
- 4.225.9.96/29
- 51.12.144.32/29
- 20.199.1.232/29
- 51.12.152.184/29
- 20.199.6.80/29
- 51.12.152.240/29
- 20.19.101.136/29
- 51.12.252.16/28
- 74.241.131.48/28
- 20.240.211.176/28
- 108.143.221.96/28
- 20.61.46.32/28
- 20.224.62.160/28
Además, si usas una cuenta de Blob Storage con reglas de firewall:
- Debes permitir el acceso a los intervalos IP de salida para GHE.com. Consulte "Detalles de red para GHE.com".
- Si usas Azure Blob Storage, es posible que tengas que realizar alguna configuración adicional. Ponte en contacto con Soporte de GitHub.