{"meta":{"title":"Migración del repositorio con Enterprise Live Migrations","intro":"Migre de GitHub Enterprise Server a GHE.com con un tiempo de inactividad mínimo.","product":"Migraciones","breadcrumbs":[{"href":"/es/enterprise-cloud@latest/migrations","title":"Migraciones"},{"href":"/es/enterprise-cloud@latest/migrations/elm","title":"Migraciones en vivo (GHES a GHE.com)"},{"href":"/es/enterprise-cloud@latest/migrations/elm/migrate-your-repository","title":"Migración del repositorio"}],"documentType":"article"},"body":"# Migración del repositorio con Enterprise Live Migrations\n\nMigre de GitHub Enterprise Server a GHE.com con un tiempo de inactividad mínimo.\n\n> \\[!TIP] A medida que siga esta guía, puede consultar [Referencia de la CLI de Enterprise Live Migrations](/es/enterprise-cloud@latest/migrations/elm/elm-cli-reference) para obtener información de uso más detallada. Si se producen errores, consulte [Solución de problemas de migraciones en vivo de GitHub Enterprise Server a GHE.com](/es/enterprise-cloud@latest/migrations/elm/troubleshooting).\n\n## Prerequisites\n\nAsegúrese de que los entornos y desarrolladores están listos para la migración. Consulte [Preparación para la migración en vivo desde GitHub Enterprise Server a GHE.com](/es/enterprise-cloud@latest/migrations/elm/prepare-for-your-migration).\n\n## 1. Configurar GitHub Enterprise Server\n\nDebe establecer alguna configuración en la GitHub Enterprise Server instancia antes de crear tokens y realizar una migración. Estos valores de configuración se aplican a todas las ELM migraciones.\nGitHub Enterprise Server Los desarrolladores pueden experimentar un breve tiempo de inactividad al aplicar la nueva configuración.\n\n1. Acceda al GitHub Enterprise Server shell administrativo mediante SSH. Consulte [Acceder al shell administrativo (SSH)](/es/enterprise-server@3.22/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh).\n2. Establezca las siguientes variables de configuración con `ghe-config`.\n\n   Por ejemplo: `ghe-config app.elm-exporter.enabled true`\n\n   | Variable                                             | Establézcalo en...                                                                              |\n   | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------- |\n   | `app.elm-exporter.enabled`                           | `true`                                                                                          |\n   | `app.elm.internal-webhooks-enabled`                  | `true`                                                                                          |\n   | `app.elm-exporter.webhooks-loopback-address-enabled` | `true`                                                                                          |\n   | `secrets.elm-exporter.migration-target-url`          | La dirección URL de API de la empresa de destino (por ejemplo: `https://api.octocorp.ghe.com`). |\n\n**No** incluya una barra diagonal final al final de la dirección URL. |\n\\| `secrets.elm-exporter.source-user` | Nombre de usuario asociado al token del GitHub Enterprise Server operador. Debe ser su nombre de usuario en GitHub Enterprise Server; si otra persona va a crear este token, el valor aquí debe establecerse en su nombre de usuario. Recomendamos al `ghe-admin` usuario. |\n\n1. Aplique la configuración.\n\n   ```shell copy\n   ghe-config-apply\n   ```\n\n2. Deje la sesión SSH. Ejecutará el resto de los comandos en una sesión de terminal local.\n\n## 2. Creación de tokens de operador con acceso empresarial\n\nEl operador debe autenticarse tanto en la empresa de origen como en la de destino con un personal access token (classic). Para obtener instrucciones sobre cómo crear tokens, consulte [Administración de tokens de acceso personal](/es/enterprise-cloud@latest/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n**Asegúrese de anotar ambos tokens**, ya que los necesitará en el paso siguiente.\n\n1. En **GitHub Enterprise Server**, cree un personal access token (classic) y seleccione el ámbito requerido:\n\n   * `admin:enterprise`\n\n   Usará este token como el **token de origen** al configurar el ELM CLI.\n\n2. En **GHE.com**, cree personal access token (classic) y seleccione los alcances necesarios:\n\n   * `admin:enterprise`\n   * `admin:org`\n\n   Utilizará este token como **token de destino** al configurar el ELM CLI.\n\n## 3. Configurar la herramienta ELM de línea de comandos\n\nEjecutarás la migración desde un terminal local, mediante una extensión del GitHub CLI.\n\n1. Instale el [GitHub CLI](https://cli.github.com/) en su equipo local. Debe usar la versión 2.0 o posterior.\n\n2. Instale la extensión ELM.\n\n   ```shell copy\n   gh extension install github/gh-elm\n   ```\n\n3. Inicie el Asistente para la instalación para configurar la extensión.\n\n   ```shell copy\n   gh elm configure\n   ```\n\n4. Siga las instrucciones del Asistente para la instalación, proporcionando las direcciones URL de API (por ejemplo: `https://api.SUBDOMAIN.ghe.com`) para el origen y el destino y los tokens que creó en el paso anterior.\n\nCualquiera de estos valores también se puede proporcionar como marcas de la CLI en cualquier `gh elm` comando, lo que tendrá prioridad sobre la configuración. Por ejemplo: `--target-url https://api.SUBDOMAIN.ghe.com`.\n\nEste proceso de configuración almacenará las direcciones URL en un archivo de configuración específico de la plataforma en el directorio de configuración del sistema operativo, en `gh-elm/config.json`. Los tokens de acceso se almacenarán de forma segura en el almacenamiento secreto del equipo.\n\n## 4. Configuración de los secretos de migración en vivo\n\nAdemás de los tokens de operador con acceso empresarial, debe crear un personal access token (classic) para las organizaciones de origen y de destino. Debe repetir estos pasos para cada organización desde la que va a migrar.\n\n### Creación de tokens de acceso\n\nELM debe autenticarse con un/a personal access token (classic) tanto para el origen como para el destino de la migración. Para obtener instrucciones sobre cómo crear tokens, consulte [Administración de tokens de acceso personal](/es/enterprise-cloud@latest/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n**Asegúrese de anotar estos tokens**, ya que los necesitará en el paso siguiente.\n\n1. Cree un personal access token (classic) en **GitHub Enterprise Server** con los siguientes alcances:\n\n   * `repo`\n   * `admin:org`\n   * `admin:repo_hook`\n   * `admin:org_hook`\n\n   Este es el token de origen.\n\n2. Cree un personal access token (classic) en **GHE.com** con los siguientes alcances:\n\n   * `repo`\n   * `workflow`\n   * `admin:org`\n   * `admin:repo_hook`\n   * `admin:enterprise`\n\n   Este es el token de destino.\n\n   > \\[!IMPORTANT]\n   > Si se aplica el inicio de sesión único en la organización de destino en GHE.com, debe autorizar el GHE.com token para el inicio de sesión único.\n\n### Configure los secretos de su organización ELM\n\nUse los `gh elm config` comandos para establecer los tokens de acceso de origen y de destino:\n\n1. Establezca el token de origen.\n\n   ```shell copy\n   gh elm config set-source-pat EXISTING-GHES-ORG\n   ```\n\n   Pegue el token de origen en el terminal cuando se le solicite.\n\n2. Establezca el token de destino.\n\n   ```shell copy\n   gh elm config set-target-pat EXISTING-GHES-ORG\n   ```\n\n   Pegue el token de destino en el terminal cuando se le solicite.\n\nTambién puede establecer los tokens de forma interactiva, mediante `gh elm config org-tokens EXISTING-GHES-ORG`o en la configuración de la organización en `https://GHES_HOSTNAME/organizations/EXISTING-GHES-ORG/settings/secrets/elm-exporter/`.\n\n## 5. Cree una migración\n\nCree una nueva migración especificando los detalles del repositorio de origen y de destino.\n\n> \\[!NOTE]\n> `target-org` puede ser nuevo o existente. Si la organización de destino aún no existe, se creará durante la migración. Sin embargo, no se migrará ninguna configuración de la organización de origen.\n\n```shell copy\ngh elm migration create \\\n  --source-org EXISTING-GHES-ORG \\\n  --source-repo EXISTING-GHES-REPO \\\n  --target-org GHEC-ORG \\\n  --target-repo NEW-GHEC-REPO\n```\n\nPor ejemplo:\n\n```shell\ngh elm migration create \\\n  --source-org my-ghes-org \\\n  --source-repo my-ghes-repo \\\n  --target-org my-dr-org \\\n  --target-repo my-dr-repo\n```\n\nMarcas opcionales:\n\n* `--start`: si está listo para iniciar la migración de inmediato.\n* `--target-visibility`: los repositorios migrados se crean con visibilidad **interna** de forma predeterminada, pero puede especificar `private`.\n\n### Guardar el identificador de migración\n\nDebería ver una respuesta similar a la siguiente:\n\n```json\n{\n  \"migrationId\": \"2b5c9eae-b5da-4306-ab04-2a29cc2b7cb9\",\n  \"expiresAt\": \"2026-02-11T21:49:33.619162159Z\"\n}\n```\n\nExporte como `migrationId` una variable, ya que la necesitará para los siguientes comandos. Por ejemplo:\n\n```shell\nexport MIGRATION_ID='2b5c9eae-b5da-4306-ab04-2a29cc2b7cb9'\n```\n\n## 6. Iniciar la migración\n\nSi aún no inició la migración, iníciela ahora con el identificador de migración que acaba de guardar.\n\n```shell copy\ngh elm migration start --migration-id $MIGRATION_ID\n```\n\nEsto inicia los procesos de reposición y actualización dinámica.\nELM está recopilando ahora datos del repositorio de origen y escuchando los eventos de webhook que se admiten.\n\n## 7. Supervisión de la migración\n\nCuando se haya iniciado la migración, debería ver un nuevo repositorio en GHE.com. Durante la migración, verá que el repositorio se rellena con una carga inicial de datos y recibe actualizaciones a medida que los desarrolladores siguen trabajando en el repositorio de origen.\n\nPuede supervisar el progreso de la migración de forma interactiva mediante el `watch` comando :\n\n```shell\ngh elm migration watch $MIGRATION_ID\n```\n\nEsto consultará la API del estado de la migración y mostrará una interfaz de texto que se actualiza automáticamente y refleja el progreso actual.\n\n### Supervisión programática mediante `migration status`\n\nSi desea un estado de migración adecuado para la automatización, use el `status` comando :\n\n```shell copy\ngh elm migration status --migration-id $MIGRATION_ID\n```\n\nEl indicador más importante de la respuesta es el estado del objeto **combinedState** . Cuando el estado alcance `COMBINED_STATUS_READY_FOR_CUTOVER`, debe estar listo para continuar con el paso siguiente. Sin embargo, se le avisará en `displayMessage` si algún recurso individual no se pudo migrar, lo que puede que tenga que investigar.\n\nPor ejemplo:\n\n```json\n  \"combinedState\":  {\n    \"status\":  \"COMBINED_STATUS_READY_FOR_CUTOVER\",\n    \"displayMessage\":  \"Ready for cutover (1 resources failed)\",\n    \"repositories\":  [\n      {\n        \"repositoryNwo\":  \"new-test-org/my-new-repo\",\n        \"phase\":  \"REPOSITORY_PHASE_READY_FOR_CUTOVER\",\n        \"displayStatus\":  \"Ready for cutover (1 failed)\"\n      }\n    ],\n    \"readyForCutover\":  true,\n    \"cutoverBlockers\":  []\n  },\n```\n\nSugerencias:\n\n* Si ejecuta varias migraciones, puede comprobar el estado de todas ellas con `gh elm migration list`. Este comando muestra las migraciones en curso de forma predeterminada, pero también puede filtrar por `--status`.\n* Si encuentra estados de error que requieren atención, consulte [Solución de problemas de migraciones en vivo de GitHub Enterprise Server a GHE.com](/es/enterprise-cloud@latest/migrations/elm/troubleshooting#statuses-and-recommended-actions).\n\n## 8. Completar la migración\n\nCuando una migración esté lista para el cambio final, puede completarla. El proceso de transición archivará el repositorio de origen, lo que lo convierte **en de solo lectura permanentemente** a menos que un administrador del repositorio lo desarchive.\n\n```shell copy\ngh elm migration cutover --migration-id $MIGRATION_ID\n```\n\nContinúe supervisando la migración. Cuando vea el `MIGRATION_STATUS_COMPLETED` estado en la parte superior de la respuesta, la migración se ha completado, aunque hay algunas tareas de seguimiento para conceder acceso a los usuarios desde GitHub Enterprise Server.\n\n## Pasos siguientes\n\nProporcione a los usuarios acceso al nuevo repositorio y concilie la actividad con las cuentas de usuario. Consulte [Finalización de la migración en vivo desde GitHub Enterprise Server a GHE.com](/es/enterprise-cloud@latest/migrations/elm/complete-your-migration)."}