{"meta":{"title":"Importação programática de repositórios","intro":"Você pode importar repositórios programaticamente para GitHub.","product":"Migrações","breadcrumbs":[{"href":"/pt/migrations","title":"Migrações"},{"href":"/pt/migrations/overview","title":"Visão geral"},{"href":"/pt/migrations/overview/programmatically-importing-repositories","title":"Importações programáticas de repositórios"}],"documentType":"article"},"body":"# Importação programática de repositórios\n\nVocê pode importar repositórios programaticamente para GitHub.\n\n## Sobre a importação programática de repositórios\n\nNo guia a seguir, você pode aprender a executar programaticamente migrações de \"origem e histórico\" de repositórios Git para GitHub. Diferentes opções estão disponíveis, dependendo de onde o repositório está armazenado.\n\nPara saber mais sobre \"origem e histórico\" e outros tipos de migrações, confira [Como planejar sua migração para o GitHub](/pt/migrations/overview/planning-your-migration-to-github).\n\nO 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.\n\n## Uso de forks\n\nSe o repositório de origem estiver no GitHub, talvez seja possível 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\".\n\nDepois de bifurcar um repositório, você pode:\n\n* Buscar atualizações do repositório upstream para manter seu fork atualizado\n* Contribuir para o projeto original criando pull requests do fork. Para obter mais informações, confira [Garfos](/pt/pull-requests/reference/forks).\n\nVocê 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](/pt/rest/repos/forks).\n\nSe 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.\n\n* Você deseja que o repositório importado seja de propriedade do mesmo usuário ou organização que o repositório de origem.\n* Você deseja que um usuário ou organização possa importar o mesmo repositório de origem várias vezes.\n\n## Usando modelos de repositório\n\nSe o repositório de origem estiver no GitHub, talvez você possa usar modelos de repositório.\nVocê 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, consulte [Criar um repositório de modelos](/pt/repositories/creating-and-managing-repositories/creating-a-template-repository).\n\nPara 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.\n\nVocê 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](/pt/rest/repos/repos).\n\n## Usando GitHub Enterprise Importer\n\nSe o repositório de origem estiver hospedado em GitHub, GitHub Enterprise Serverserviços de Azure DevOps, Servidor Bitbucket ou Data Center do Bitbucket, você poderá importar o repositório usando GitHub Enterprise Importer. Para saber mais, confira [Sobre o GitHub Enterprise Importer](/pt/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer).\n\nAlém do histórico de controle de origem e versão, GitHub Enterprise Importer também migra problemas, solicitações de pull, configurações e muito mais.\n\nPara usar GitHub Enterprise Importer, você deve ter acesso de administrador ao repositório de origem.\n\nVocê pode importar repositórios programaticamente usando GitHub Enterprise Importer a API do GraphQL.\n\n## Usando a CLI do Git\n\nSe 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 programaticamente um repositório usando GitHuba API REST e, em seguida, usar comandos como `git clone` e `git push` importar o repositório para GitHub.\n\nA 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 o [processo filho](https://nodejs.org/api/child_process.html) na documentação do Node.js ou no [repositório ruby/open3](https://github.com/ruby/open3) em GitHub.\n\nPara 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](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) na documentação do Git.\n\n## Usando GitHub CLI\n\nSe o repositório de origem for um repositório Git, você poderá chamar o GitHub CLI programaticamente do seu código. Você pode usar o `gh repo create` para criar um repositório. Para saber mais, confira [Sobre GitHub CLI](/pt/github-cli/github-cli/about-github-cli).\n\n## Leitura adicional\n\n* [Pontos de extremidade da API REST para repositórios](/pt/rest/repos/repos)"}