Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-09-28. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Exportar dados de migração da sua empresa

Para alterar as plataformas ou mover de uma instância de teste para uma instância de produção você pode exportar os dados de migração de uma instância do GitHub Enterprise Server preparando a instância, bloqueando os repositórios e gerando um arquivo de migração.

Preparar a instância de origem de GitHub Enterprise Server

  1. Verifique se você é administrador do site na origem do GitHub Enterprise Server. A melhor maneira de fazer isso é verificar se você pode entrar na instância com o SSH.

  2. Gerar um token de acesso com os escopos repo e admin:org na instância de origem do GitHub Enterprise Server.

  3. Para minimizar o tempo de inatividade, faça uma lista de repositórios que você deseja exportar a partir da instância de origem. É possível adicionar vários repositórios a uma exportação de uma vez usando um arquivo de texto que lista a URL de cada repositório em uma linha separada.

Exportar os repositórios de origem de GitHub Enterprise Server

Observação: bloquear um repositório impede todo o acesso de gravação ao repositório. Não é possível associar novas equipes ou colaboradores a um repositório bloqueado.

Se você estiver realizando uma execução de teste, você não precisará bloquear o repositório. Quando você migra dados de um repositório que está em uso, o GitHub recomenda o bloqueio do repositório. Para obter mais informações, confira "Sobre as migrações".

  1. Entre com o SSH no your GitHub Enterprise Server instance. Se sua instância for composta por vários nós, por exemplo, se a alta disponibilidade ou a replicação geográfica estiver configurada, efetue SSH no nó primário. Se você usar um cluster, poderá efetuar SSH em qualquer nó. Para obter mais informações sobre o acesso SSH, confira "Como acessar o shell administrativo (SSH)".

    $ ssh -p 122 admin@HOSTNAME
  2. Para preparar um repositório para exportação, use o comando ghe-migrator add com a URL do repositório:

    • Se estiver bloqueando o repositório, acrescente --lock ao comando. Se estiver executando uma execução de avaliação, --lock não será necessário.
      $ ghe-migrator add https://hostname/username/reponame --lock
    • Você pode excluir anexos de arquivo acrescentando --exclude_attachments ao comando. Anexos de arquivos podem ser grandes e gerar um volume desnecessário no seu arquivo de migração final.
    • Para preparar a exportação de vários repositórios de uma só vez, crie um arquivo de texto listando cada URL do repositório em uma linha separada e execute o comando ghe-migrator add com o sinalizador -i e o caminho para seu arquivo de texto.
      $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt
  3. Quando solicitado, informe seu nome de usuário do GitHub Enterprise Server:

    Enter username authorized for migration:  admin
  4. Quando precisar fornecer um token de acesso pessoal, insira o token de acesso criado em "Como preparar a instância de origem do GitHub Enterprise Server":

    Enter personal access token:  **************
  5. Após a conclusão do ghe-migrator add, ele imprimirá o "GUID de Migração" exclusivo gerado para identificar a exportação e uma lista dos recursos adicionados à exportação. Você usará o GUID de Migração gerado nas etapas seguintes ghe-migrator add e ghe-migrator export para informar o ghe-migrator para continuar operando na mesma exportação.

    > 101 models added to export
    > Migration GUID: example-migration-guid
    > Number of records in this migration:
    > users                        |  5
    > organizations                |  1
    > repositories                 |  1
    > teams                        |  3
    > protected_branches           |  1
    > pull_request_reviews         |  1
    > milestones                   |  1
    > issues                       |  3
    > pull_requests                |  5
    > pull_request_review_comments |  4
    > commit_comments              |  2
    > issue_comments               | 10
    > issue_events                 | 63
    > releases                     |  3
    > attachments                  |  4
    > projects                     |  2

    Sempre que você adicionar um novo repositório com o GUID de Migração atual, ele atualizará a exportação atual. Se você executar ghe-migrator add novamente sem o GUID de Migração, ele vai iniciar uma nova exportação e gerar um novo GUID de Migração. Não reutilize o GUID de Migração gerado durante uma exportação quando você começar a preparar a migração para importação.

  6. Se você bloqueou o repositório de origem, use o comando ghe-migrator target_url para personalizar uma mensagem de bloqueio na página do repositório que está vinculada ao novo local do repositório. Informe a URL do repositório de origem, a URL do repositório de destino e o GUID de Migração da Etapa 5:

    $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID
  7. Para adicionar mais repositórios à mesma exportação, use o comando ghe-migrator add com o sinalizador -g. Informe a nova URL do repositório e o GUID de Migração da Etapa 5:

    $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock
  8. Quando terminar de adicionar repositórios, gere o arquivo de migração usando o comando ghe-migrator export com o sinalizador -g e o GUID de Migração da Etapa 5:

    $ ghe-migrator export -g MIGRATION_GUID
    > Archive saved to: /data/github/current/tmp/MIGRATION_GUID.tar.gz
    • Para especificar o local em que os arquivos de migração devem ser preparados, acrescente --staging-path=/full/staging/path ao comando. Assume o padrão de /data/user/tmp.
  9. Feche a conexão com o your GitHub Enterprise Server instance:

    $ exit
    > logout
    > Connection to hostname closed.
  10. Copie o arquivo de migração para o computador usando o comando scp. O arquivo terá o nome do GUID de Migração:

    $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop
  11. Para preparar os dados de migração arquivados para importação em uma instância do GitHub Enterprise Server, confira "Como se preparar para migrar dados para sua empresa".