Skip to main content

Importação programática de repositórios

Você pode importar repositórios de forma programática para o GitHub.

Sobre a importação programática de repositórios

No guia a seguir, você aprenderá a executar programaticamente migrações de "origem e histórico" de repositórios Git para o GitHub. Diferentes opções estão disponíveis, dependendo de onde o repositório está armazenado.

Para saber mais sobre "origem e histórico" e outros tipos de migrações, confira Como planejar sua migração para o GitHub.

O termo "repositório de origem" refere-se ao repositório que você está importando, e "repositório importado" refere-se ao novo repositório que você está criando.

Uso de forks

Se o repositório de origem estiver no GitHub, talvez você possa usar um fork em vez de importar o repositório. Os forks permitem fazer alterações em um projeto sem afetar o repositório original, também conhecido como repositório "upstream". Após criar fork em um repositório, você pode buscar atualizações do repositório upstream para manter seu fork atualizado e propor alterações do fork para o repositório upstream com solicitações de pull. Para obter mais informações, confira Sobre bifurcações.

Você pode criar fork de um repositório de maneira programática usando a API REST. Para saber mais, confira Pontos de extremidade de API REST para forks.

Se o seu caso de uso atender a qualquer um dos critérios a seguir, você não poderá usar o fork em vez de importar diretamente o repositório.

  • Você deseja que o repositório importado seja de propriedade do mesmo usuário ou organização que o repositório de origem.
  • Você deseja que um usuário ou organização possa importar o mesmo repositório de origem várias vezes.

Usando modelos de repositório

Se o repositório de origem estiver no GitHub, talvez seja possível usar modelos de repositório. Você pode criar um modelo a partir de um repositório existente. Qualquer pessoa com acesso ao repositório de modelos pode criar um novo repositório baseado no modelo com a mesma estrutura de diretórios, branchs e arquivos. Para obter mais detalhes, confira Criar um repositório de modelos.

Para usar modelos de repositório, você deve ter acesso de leitura a um repositório existente que seja um modelo ou deve ter acesso para criar um modelo.

Você pode criar programaticamente um repositório a partir de um modelo de repositório usando a API REST. Para saber mais, confira Pontos de extremidade da API REST para repositórios.

Usando o GitHub Enterprise Importer

Se o repositório de origem estiver hospedado no GitHub, no GitHub Enterprise Server, no Azure DevOps Services, no Bitbucket Server ou no Bitbucket Data Center, você poderá importar o repositório usando o GitHub Enterprise Importer. Para saber mais, confira Sobre o GitHub Enterprise Importer.

Além do histórico de origem e do controle de versão, o GitHub Enterprise Importer também migra problemas, solicitações de pull, configurações e muito mais.

Para usar o GitHub Enterprise Importer, você deve ter acesso de administrador ao repositório de origem.

Você pode importar repositórios programaticamente com o GitHub Enterprise Importer usando a API GraphQL.

Usando a CLI do Git

Se o repositório de origem for um repositório Git, você poderá chamar a CLI do Git programaticamente a partir do seu código. Você pode criar um repositório de forma programática usando a API REST do GitHub e, em seguida, usar comandos como git clone e git push para importar o repositório para o GitHub.

A forma como você chama a CLI do Git varia de acordo com a linguagem do seu código. Por exemplo, no Node.js, você pode usar o módulo child_process ou, no Ruby, pode usar o módulo open3. Para obter mais informações, consulte Processo filho na documentação do Node.js ou no repositório ruby/open3 no GitHub.

Para usar a CLI do Git, você deve ter acesso para instalar o Git no sistema que hospeda seu aplicativo. Para obter mais informações, consulte Introdução - Instalação do Git na documentação do Git.

Como usar a GitHub CLI

Se o repositório de origem for um repositório Git, você poderá chamar a variável GitHub CLI programaticamente a partir do seu código. Você pode usar o gh repo create para criar um repositório. Para saber mais, confira Sobre o a CLI do GitHub.

Leitura adicional