# Программное импортирование репозиториев

Репозитории GitHubможно импортировать программным способом в .

## О программном импорте репозиториев

В следующем руководстве вы узнаете, как программно запускать миграцию репозиториев Git GitHubв исходный и журнал. Различные параметры доступны в зависимости от того, где хранится репозиторий.

Дополнительные сведения о "источнике и журнале" и других типах миграций см. в разделе [Планирование миграции на GitHub](/ru/enterprise-cloud@latest/migrations/overview/planning-your-migration-to-github).

Термин "исходный репозиторий" ссылается на репозиторий, который вы импортируете, и "импортированный репозиторий" ссылается на новый репозиторий, который вы создаете.

## Использование вилок

Если исходный репозиторий включен GitHub, вы можете использовать вилку вместо импорта репозитория. Вилки позволяют вносить изменения в проект, не затрагивая исходный репозиторий, также известный как "вышестоящий" репозиторий.

После создания вилки репозитория можно:

* Получение обновлений из вышестоящего репозитория для поддержания актуальности вилки
* Войдите в исходный проект, создав запросы на вытягивание из вилки. Дополнительные сведения см. в разделе [Вилки](/ru/enterprise-cloud@latest/pull-requests/reference/forks).

Вы можете программным способом закрепить репозиторий с помощью REST API. Дополнительные сведения см. в разделе [Конечные точки REST API для вилок](/ru/enterprise-cloud@latest/rest/repos/forks).

Если вариант использования соответствует любому из следующих критериев, вы не можете использовать вилку вместо непосредственного импорта репозитория.

* Необходимо, чтобы импортированный репозиторий принадлежал тому же пользователю или организации, что и исходный репозиторий.
* Вы хотите, чтобы один пользователь или организация могли импортировать один и тот же исходный репозиторий несколько раз.

## Использование шаблонов репозитория

Если исходный репозиторий включен GitHub, вы можете использовать шаблоны репозитория.
Вы можете создать шаблон из существующего репозитория. Любой пользователь с доступом к репозиторию шаблонов может создать новый репозиторий на основе шаблона с той же структурой каталогов, ветвями и файлами. Дополнительные сведения см. в разделе [Создание репозитория шаблонов](/ru/enterprise-cloud@latest/repositories/creating-and-managing-repositories/creating-a-template-repository).

Чтобы использовать шаблоны репозитория, необходимо иметь доступ на чтение к существующему репозиторию, который является шаблоном, или у вас должен быть доступ к созданию шаблона.

Вы можете программно создать репозиторий из шаблона репозитория с помощью REST API. Дополнительные сведения см. в разделе [Конечные точки REST API для репозиториев](/ru/enterprise-cloud@latest/rest/repos/repos).

## С использованием GitHub Enterprise Importer

Если исходный репозиторий размещен в GitHub, GitHub Enterprise ServerAzure DevOps Services, Bitbucket Server или Bitbucket Data Center, можно импортировать репозиторий с помощью GitHub Enterprise Importer. Дополнительные сведения см. в разделе [Сведения о GitHub Enterprise Importer](/ru/enterprise-cloud@latest/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer).

Помимо журнала управления версиями и версиями, GitHub Enterprise Importer также переносит проблемы, запросы на вытягивание, параметры и многое другое.

Для использования GitHub Enterprise Importerнеобходимо иметь доступ администратора к исходному репозиторию.

Репозитории можно импортировать программным способом с GitHub Enterprise Importer помощью API GraphQL.

## Использование интерфейса командной строки Git

Если исходный репозиторий является репозиторием Git, вы можете вызвать Git CLI программным способом из кода. Вы можете программно создать репозиторий с помощью GitHubREST API, а затем использовать команды, такие как `git clone` и `git push` импортировать репозиторий GitHub.

Вызов интерфейса командной строки Git отличается в зависимости от языка кода. Например, в Node.js можно использовать `child_process` модуль или в Ruby.`open3` Дополнительные сведения см. в разделе ["Дочерний процесс](https://nodejs.org/api/child_process.html) " в документации Node.js или [репозитории ruby/open3](https://github.com/ruby/open3) в GitHub.

Чтобы использовать интерфейс командной строки Git, необходимо иметь доступ к установке Git в системе, в которую размещается приложение. Дополнительные сведения см. в статье ["Начало работы— установка Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) " в документации по Git.

## С использованием GitHub CLI

Если исходный репозиторий является репозиторием Git, вы можете вызвать GitHub CLI его программным способом из кода. Можно использовать `gh repo create` для создания репозитория. Дополнительные сведения см. в разделе [О GitHub CLI](/ru/enterprise-cloud@latest/github-cli/github-cli/about-github-cli).

## Дополнительные материалы

* [Конечные точки REST API для репозиториев](/ru/enterprise-cloud@latest/rest/repos/repos)