Esta versão do GitHub Enterprise foi descontinuada em 2021-06-09. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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ê consegue fazer SSH na instância.

  2. Generate an access token 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

Note: Locking a repository prevents all read or write access to the repository. You cannot associate new teams or collaborators with a locked repository. If you're performing a trial run, you do not need to lock the repository. When you migrate data from a repository that's in use,

GitHub strongly recommends locking the repository. Para obter mais informações, consulte "Sobre migrações".

  1. SSH em sua instância do GitHub Enterprise Server. Para obter mais informações, consulte "Acessar o shell administrativo (SSH)".

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

    • Se você estiver bloqueando o repositório, adicione --lock ao comando. Se estiver executando um teste, não será necessário incluir --lock.
      $ ghe-migrator add https://hostname/username/reponame --lock
    • Você pode excluir anexos de arquivos adicionando --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 o 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:

    Insira o nome de usuário autorizado para a migração: admin
  4. Quando o token de acesso pessoal for solicitado, informe o token de acesso que você criou na seção "Preparar a instância de origem do GitHub Enterprise Server":

    Insira o token de acesso pessoal:  **************
  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 a lista dos recursos adicionados à exportação. Você usará o GUID de Migração gerado nas etapas subsequentes ghe-migrator add e ghe-migrator export para informar que o ghe-migrator deve 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 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 importar.

  6. Se você bloqueou o repositório de origem, é possível usar o comando ghe-migrator target_url para personalizar uma mensagem de bloqueio na página de repositório que vincula 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 os 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 executados, acrescente o comando com --staging-path=/full/staging/path. O padrão é /data/user/tmp.
  9. Fechar a conexão com sua instância do GitHub Enterprise Server:

    $ exit
    > logout
    > Connection to hostname closed.
  10. Copie o arquivo de migração para o seu 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 fazer a importação para uma instância de GitHub Enterprise Server, consulte "Preparar-se para migrar dados para a sua empresa".