Skip to main content

Como exportar dados de migração do GitHub Enterprise Server

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 o ghe-migrator".

  1. Conecte-se via SSH ao GitHub.com. 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ó. Substitua HOSTNAME pelo nome do host da instância ou pelo nome do host ou endereço IP de um nó. Para obter mais informações, confira "Acesar o shell administrativo (SSH)".

    Shell
    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/REPO-NAME --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_URL.txt
      
  3. Quando solicitado, informe seu nome de usuário do GitHub Enterprise Server:

    Enter username authorized for migration:  admin
    
  4. Quando for solicitado que você forneça um personal access token, 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. 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-REPO-NAME -g MIGRATION-GUID --lock
    
  7. 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.
  8. Encerre a conexão com o GitHub.com:

    $ exit
    > logout
    > Connection to HOSTNAME closed.
    
  9. 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
    
  10. Para preparar os dados de migração arquivados para importação para uma instância do GitHub Enterprise Server, confira "Como migrar dados para o GitHub Enterprise Server".