{"meta":{"title":"Migrando seu repositório com Enterprise Live Migrations","intro":"Migre de GitHub Enterprise Server para GHE.com com tempo de inatividade mínimo.","product":"Migrações","breadcrumbs":[{"href":"/pt/migrations","title":"Migrações"},{"href":"/pt/migrations/elm","title":"Migrações dinâmicas (GHES para GHE.com)"},{"href":"/pt/migrations/elm/migrate-your-repository","title":"Migrar seu repositório"}],"documentType":"article"},"body":"# Migrando seu repositório com Enterprise Live Migrations\n\nMigre de GitHub Enterprise Server para GHE.com com tempo de inatividade mínimo.\n\n> \\[!NOTE]\n> Enterprise Live Migrations está dentro prévia pública e sujeito a alterações.\n\n> \\[!TIP] Ao seguir este guia, você pode consultar o [Referência da CLI do Enterprise Live Migrations](/pt/migrations/elm/elm-cli-reference) para obter informações de uso mais detalhadas. Se você encontrar erros, consulte [Solução de problemas de migrações dinâmicas do GitHub Enterprise Server para o GHE.com](/pt/migrations/elm/troubleshooting).\n\n## Pré-requisitos\n\nVerifique se você está pronto para a migração. Consulte [Preparando sua migração ao vivo do GitHub Enterprise Server para o GHE.com](/pt/migrations/elm/prepare-for-your-migration).\n\n## 1. Criar tokens de acesso\n\nVocê deve autenticar com um personal access token (classic) tanto para a origem quanto para o destino da migração. Para obter instruções detalhadas, confira [Gerenciar seus tokens de acesso pessoal](/pt/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-personal-access-token-classic).\n\n**Anote ambos os tokens**, pois você precisará deles na próxima etapa.\n\n1. Crie um personal access token (classic) em **GitHub Enterprise Server** com os escopos a seguir.\n\n   * `repo`\n   * `admin:org`\n   * `admin:repo_hook`\n   * `admin:org_hook`\n\n2. Crie um personal access token (classic) em **GHE.com** com os escopos a seguir.\n\n   * `repo`\n   * `workflow`\n   * `admin:org`\n   * `admin:repo_hook`\n   * `admin:enterprise`\n\n3. Se o logon único for imposto na organização de destino GHE.com, autorize o token GHE.com.\n\n## 2. Configurar GitHub Enterprise Server\n\nVocê deve definir alguma configuração na GitHub Enterprise Server instância antes de executar uma migração. Esses valores de configuração se aplicam a todas as ELM migrações. Os desenvolvedores que utilizam GitHub Enterprise Server podem passar por um breve tempo de inatividade ao aplicar a nova configuração.\n\n1. Acesse o GitHub Enterprise Server shell administrativo por SSH. Consulte [Acessar o shell administrativo (SSH)](/pt/enterprise-server@3.22/admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh).\n2. Defina as variáveis de configuração a seguir com `ghe-config`.\n\n   Por exemplo: `ghe-config app.elm-exporter.enabled true`\n\n   | Variable                                             | Defina isso como...                                                                     |\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`          | A URL da API para sua empresa de destino (por exemplo: `https://api.octocorp.ghe.com`). |\n\n**Não** inclua uma barra no final da URL. |\n\\| `secrets.elm-exporter.migration-target-token` | O token de acesso que você criou para GHE.com. |\n\\| `secrets.elm-exporter.source-token` | O token de acesso que você criou para GitHub Enterprise Server. |\n\\| `secrets.elm-exporter.source-user` | O nome de usuário associado ao GitHub Enterprise Server token (por exemplo: `ghe-admin`). |\n\\| `app.migrations.enabled` | Se você ainda não tiver migrações habilitadas na instância, deverá defini-la como `true`. |\n\n1. Aplicar a configuração.\n\n   ```shell copy\n   ghe-config-apply\n   ```\n\n## 3. Definir variáveis de ambiente necessárias\n\nQuando a configuração tiver sido aplicada e antes de iniciar uma migração, defina as variáveis de ambiente necessárias. Por exemplo:\n\n```shell\nexport API_URL='http://localhost:1738'\n```\n\n> \\[!IMPORTANT] Copie os valores para `API_URL` e `MIGRATION_MANAGER_HMAC_KEY` exatamente. As outras variáveis são específicas para seu ambiente.\n\n| Variable                                  | Valor necessário                                                                        |\n| ----------------------------------------- | --------------------------------------------------------------------------------------- |\n| API\\_URL                                  | `http://localhost:1738`                                                                 |\n| MIGRATION\\_MANAGER\\_HMAC\\_KEY             | `$(ghe-config secrets.elm-exporter.elm-exporter-hmac-keys)`                             |\n| MIGRATION\\_TARGET\\_URL                    | A URL da API para sua empresa de destino (por exemplo: `https://api.octocorp.ghe.com`). |\n| **Não** inclua uma barra no final da URL. |                                                                                         |\n| MIGRATION\\_TARGET\\_TOKEN                  | O personal access token (classic) para GHE.com                                          |\n\nQualquer um desses valores também pode ser fornecido como sinalizadores da CLI em qualquer `elm` comando, o que terá prioridade sobre as variáveis. Por exemplo: `--api-url http://localhost:1738`.\n\n## 4. Criar uma migração\n\nCrie uma nova migração especificando os detalhes do repositório de origem e de destino.\n`--pat-name` deve ser definido `system-pat` como um valor estático. Os outros valores são espaços reservados específicos para seu ambiente.\n\n> \\[!NOTE] O `target-org` pode ser novo ou existente. Se a organização de destino ainda não existir, ela será criada durante a migração. No entanto, nenhuma configuração da organização de origem será migrada.\n\n```shell copy\nelm 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  --target-api GHEC-API-URL \\\n  --pat-name system-pat\n```\n\nPor exemplo:\n\n```shell\nelm 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  --target-api $MIGRATION_TARGET_URL \\\n  --pat-name system-pat\n```\n\nSinalizadores opcionais:\n\n* `--start`: se você estiver pronto para iniciar a migração imediatamente.\n* `--target-visibility`: repositórios migrados são criados com visibilidade **interna** por padrão, mas você pode especificar `private`.\n\n### Salvar o ID da migração\n\nVocê deverá ver uma resposta semelhante à seguinte:\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` uma variável, pois você precisará dela para os próximos comandos. Por exemplo:\n\n```shell\nexport MIGRATION_ID='2b5c9eae-b5da-4306-ab04-2a29cc2b7cb9'\n```\n\n## 5. Iniciar a migração\n\nSe você ainda não iniciou a migração, inicie-a agora usando a ID de migração que você acabou de salvar.\n\n```shell copy\nelm migration start --migration-id $MIGRATION_ID\n```\n\nIsso inicia os processos de backfill e atualização em tempo real.\nELM agora está coletando dados do repositório de origem e monitorando eventos de webhook com suporte.\n\n## 6. Monitorar a migração\n\nQuando a migração for iniciada, você deverá ver um novo repositório.GHE.com Durante a migração, você verá o preenchimento do repositório com uma carga inicial de dados e receberá atualizações à medida que os desenvolvedores continuarem a trabalhar no repositório de origem.\n\nExecute o comando a seguir regularmente para monitorar o status da migração. Você verá um detalhamento dos status da origem e do destino e informações sobre dados dinâmicos sendo migrados.\n\n```shell copy\nelm migration status --migration-id $MIGRATION_ID\n```\n\nO indicador mais importante na resposta é o status no objeto **combinedState** . Quando o status chegar `COMBINED_STATUS_READY_FOR_CUTOVER`, você deverá estar pronto para prosseguir para a próxima etapa. No entanto, você será alertado no `displayMessage` se algum recurso individual não tiver migrado, o que talvez seja necessário investigar.\n\nPor exemplo:\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\nDicas:\n\n* Se você estiver executando várias migrações, poderá verificar o status de todas elas com `elm migration list`. Esse comando mostra migrações em andamento por padrão, mas você também pode filtrar por `--status`.\n* Se você encontrar status de falha que exijam atenção, consulte [Solução de problemas de migrações dinâmicas do GitHub Enterprise Server para o GHE.com](/pt/migrations/elm/troubleshooting#statuses-and-recommended-actions).\n\n## 7. Concluir a migração\n\nQuando uma migração estiver pronta para entrada em operação, você pode concluir a migração. O processo de migração arquivará o repositório de origem, fazendo com que ele fique **permanentemente em modo somente leitura**, a menos que um administrador do repositório o desarquive.\n\n```shell copy\nelm migration cutover-to-destination --migration-id $MIGRATION_ID\n```\n\nContinue monitorando a migração. Quando você vê o `MIGRATION_STATUS_COMPLETED` status na parte superior da resposta, a migração é concluída, embora haja algumas tarefas de acompanhamento para dar acesso aos usuários de GitHub Enterprise Server.\n\n## Próximas Etapas \n\nDê aos usuários acesso ao novo repositório e reconcilie a atividade com contas de usuário. Consulte [Concluindo sua migração ao vivo do GitHub Enterprise Server para o GHE.com](/pt/migrations/elm/complete-your-migration)."}