Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Exportar dados de migração do GitHub.com

Você pode exportar dados de migração de uma organização no GitHub.com usando a API para selecionar repositórios a serem migrados e, em seguida, gerando um arquivo de migração que pode ser importado em uma instância do GitHub Enterprise Server.

Neste artigo

Esse documento ajudou você?

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.

Preparar a organização de origem em GitHub

  1. Verifique se você tem permissões de proprietário nos repositórios de origem da organização.

  2. Generate an access token com os escopos repo e admin:org no GitHub.com.

  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 repositórios da organização

Nota: Relações de bifurcação não persistem após a migração.

Para exportar os dados do repositório do GitHub.com, use a API de Migrações.

No momento, a API de Migrações está em período de exibição. Ou seja, os pontos de extremidade e os parâmetros podem mudar no futuro. Para acessar a API de Migrações, você deve informar um tipo de mídia personalizado no cabeçalho Accept: application/vnd.github.wyandotte-preview+json. Os exemplos abaixo incluem o tipo de mídia personalizado.

Gerar arquivos de migração

Nota: Bloquear um repositório impede que os usuários façam push para o repositório ou modifiquem os recursos de um repositório, como issues, etiquetas, marcos, wikis e comentários. Novas equipes e colaboradores não podem ser associados a um repositório bloqueado.

Se você estiver realizando uma execução de teste, não precisa bloquear repositórios. Caso contrário, é altamente recomendado. Para obter mais informações, consulte "Sobre migrações".

  1. Informe os integrantes da organização que você fará uma migração. Dependendo do número de repositórios exportados, a exportação pode levar vários minutos. A migração completa (com importação) pode levar horas. Portanto, é recomendável fazer uma avaliação para determinar a duração do processo completo. Para obter mais informações, consulte "Sobre migrações".

  2. Comece a migração fazendo POST no ponto de extremidade da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • Uma lista de repositórios que você pretende migrar:
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X POST \
      -H "Accept: application/vnd.github.wyandotte-preview+json" \
      -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \
      https://api.github.com/orgs/orgname/migrations
    • Se quiser bloquear os repositórios antes da migração, verifique se lock_repositories está definido como true. Fazer isso é altamente recomendável.
    • Você pode excluir anexos de arquivos adicionando exclude_attachments: true ao ponto de extremidade. Anexos de arquivos podem ser grandes e gerar um volume desnecessário no seu arquivo de migração final. O tamanho do arquivo final deve ser menor do que 20 GB.

    A solicitação retorna um id exclusivo que representa a migração. Você precisará dele em ações subsequentes que envolvam a API de Migrações.

  3. Envie uma solicitação GET para o ponto de extremidade de status da migração para fazer fetch do status da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id

    Os estados das migrações são os seguintes:

    • pending, a migração ainda não começou;
    • exporting, a migração está em andamento;
    • exported, a migração foi concluída com êxito;
    • failed, houve falha na migração.
  4. Depois de exportar a migração, baixe o aquivo de migração enviando uma solicitação GET para o ponto de extremidade de download da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Accept: application/vnd.github.wyandotte-preview+json" \
      -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/orgname/migrations/id/archive
  5. O arquivo de migração é excluído automaticamente após sete dias. Para excluí-lo antes, você pode enviar a solicitação DELETE para o ponto de extremidade de exclusão do arquivo de migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \
      -H "Accept: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id/archive
  6. Para importar os dados de migração arquivados para uma instância do GitHub Enterprise Server consulte "Importing migration data to GitHub Enterprise Server".

Esse documento ajudou você?

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.