Skip to main content

Перенос репозиториев из GitHub.com в GitHub Enterprise Cloud

Репозитории можно перенести с GitHub.com на GitHub Enterprise Cloud, используя GitHub CLI или API GraphQL.

Tool navigation

Сведения о миграции репозитория с помощью GitHub Enterprise Importer

Миграции на GitHub Enterprise Cloud включают миграцию между учетными записями на GitHub.com и, если вы принимаете Место расположения данных, миграция в поддомен вашего предприятия GHE.com.

Чтобы просмотреть инструкции по использованию API, используйте переключатель инструментов в верхней части страницы.

Необходимые компоненты

  • Настоятельно рекомендуется выполнить пробную версию миграции и завершить рабочую миграцию в ближайшее время. Дополнительные сведения о пробных запусках см. в разделе "Обзор миграции между продуктами GitHub".
  • Убедитесь, что вы понимаете данные, которые будут перенесены, и известные ограничения поддержки импорта. Дополнительные сведения см. в разделе Сведения о миграции между продуктами GitHub.
  • Хотя и не требуется, рекомендуется остановить работу во время рабочей миграции. Importer не поддерживает разностную миграцию, поэтому любые изменения, которые происходят во время миграции, не будут переноситься. Если вы решили не останавливать работу во время рабочей миграции, необходимо вручную перенести эти изменения.
  • В исходной и целевой организации необходимо либо владелец организации, либо предоставить роль миграции. Дополнительные сведения см. в разделе Управление доступом к миграции между продуктами GitHub.

Шаг 1. Установка GEI extension of the GitHub CLI

Если это первая миграция, необходимо установить GEI extension of the GitHub CLI. Дополнительные сведения о GitHub CLIсм. в разделе "Сведения о GitHub CLI".

Кроме того, можно скачать автономный двоичный файл на странице выпусков для github/gh-gei репозитория. Двоичный файл можно запускать напрямую без gh префикса.

  1. Установите GitHub CLI. Инструкции по установке для GitHub CLI см. в репозитории GitHub CLI.

    Note

    Вам нужна версия 2.4.0 или более позднюю версию GitHub CLI. Вы можете проверить версию, установленную gh --version с помощью команды.

  2. Установите GEI extension.

    Shell
    gh extension install github/gh-gei
    

В любое время, когда вам нужна помощь с GEI extension, можно использовать --help флаг с помощью команды. Например, gh gei --help перечислит все доступные команды и gh gei migrate-repo --help отобразит список всех параметров, доступных для migrate-repo команды.

Шаг 2. Обновление GEI extension of the GitHub CLI

Данные GEI extension обновляются еженедельно. Чтобы убедиться, что вы используете последнюю версию, обновите расширение.

gh extension upgrade github/gh-gei

Шаг 3. Задание переменных среды

Прежде чем использовать GEI extension для миграции на GitHub Enterprise Cloud, необходимо создать personal access tokens, которые могут получить доступ к исходным и целевым организациям, а затем задать personal access tokens в качестве переменных среды.

  1. Создайте и запишите personal access token (classic), которая будет проходить проверку подлинности для целевой организации на GitHub Enterprise Cloud, убедившись, что маркер соответствует всем требованиям. Дополнительные сведения см. в разделе Управление доступом к миграции между продуктами GitHub.
  2. Создайте и запишите personal access token, которая будет проходить проверку подлинности для исходной организации, убедившись, что этот маркер также соответствует всем одинаковым требованиям.

Шаг 4. Создание скрипта миграции

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

Note

Создание скрипта выводит скрипт PowerShell. Если вы используете терминал, вам потребуется вывести сценарий с .ps1 расширением файла и установить PowerShell для Mac[ или Linux, ](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-macos?view=powershell-7.2)чтобы запустить его.

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

Создание скрипта миграции

Чтобы создать скрипт миграции, выполните gh gei generate-script команду.

Shell
gh gei generate-script --github-source-org SOURCE --github-target-org DESTINATION --output FILENAME

Если вы скачали GEI как автономный двоичный файл, а не как расширение для GitHub CLI, необходимо обновить созданный скрипт, чтобы запустить двоичный файл вместо gh geiнего.

Заполнители

Замените заполнители в приведенной выше команде следующими значениями.

ЗаполнительЗначение
ИСТОЧНИКИмя исходной организации
НАЗНАЧЕНИЕИмя целевой организации
FILENAMEИмя файла для результирующего скрипта миграции

Если вы используете терминал, используйте .ps1 расширение файла в качестве созданного скрипта, чтобы запустить PowerShell. Вы можете установить PowerShell для Mac или Linux.

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

АргументDescription
--target-api-url TARGET-API-URLЕсли вы переносите данные GHE.com, добавьте --target-api-url TARGET-API-URL, где TARGET-API-URL является базовым URL-адресом API для поддомена предприятия. Например: https://api.octocorp.ghe.com.
--download-migration-logsСкачайте журнал миграции для каждого перенесенного репозитория. Дополнительные сведения о журналах миграции см. в разделе Доступ к журналам миграции для GitHub Enterprise Importer.

Просмотр скрипта миграции

После создания скрипта просмотрите файл и, при необходимости, измените скрипт.

  • Если есть какие-либо репозитории, которые вы не хотите перенести, удалить или закомментировать соответствующие строки.
  • Если в целевой организации есть другое имя репозиториев, обновите значение соответствующего --target-repo флага.
  • Если вы хотите изменить видимость нового репозитория, обновите значение соответствующего --target-repo-visibility флага. По умолчанию скрипт задает ту же видимость, что и исходный репозиторий.

Если в репозитории имеется более 10 ГБ данных о выпусках, выпуски не могут быть перенесены. --skip-releases Используйте флаг для переноса репозитория без выпусков.

Если вы скачали GEI как автономный двоичный файл, а не как расширение для GitHub CLI, необходимо обновить созданный скрипт, чтобы запустить двоичный файл вместо gh geiнего.

Шаг 5. Миграция репозиториев

Перенос нескольких репозиториев

Перенос одного репозитория

Shell
gh gei migrate-repo --github-source-org SOURCE --source-repo CURRENT-NAME --github-target-org DESTINATION --target-repo NEW-NAME

Заполнители

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

АргументDescription
--target-api-url TARGET-API-URLЕсли вы переносите данные GHE.com, добавьте --target-api-url TARGET-API-URL, где TARGET-API-URL является базовым URL-адресом API для поддомена предприятия. Например: https://api.octocorp.ghe.com.
--skip-releasesЕсли в репозитории имеется более 10 ГБ данных о выпусках, выпуски не могут быть перенесены. --skip-releases Используйте флаг для переноса репозитория без выпусков.
--target-repo-visibility TARGET-VISIBILITY

Прерывание миграции

Если вы хотите отменить миграцию, используйте abort-migration команду, заменив идентификатор MIGRATION-ID возвращенным идентификатором migrate-repo.

Shell
gh gei abort-migration --migration-id MIGRATION-ID

Шаг 6. Проверка миграции и проверка журнала ошибок

По завершении миграции рекомендуется просмотреть журнал миграции. Дополнительные сведения см. в разделе «Доступ к журналам миграции для GitHub Enterprise Importer».

Рекомендуется просмотреть перенесенные репозитории для проверки звука.