Skip to main content

Сведения о миграции между продуктами GitHub

Узнайте, какие данные GitHub Enterprise Importer можно перенести между продуктами GitHub.

Сведения о миграции между продуктами GitHub

С помощью GitHub Enterprise Importerможно перенести данные из GitHub Enterprise Server на GitHub Enterprise Cloudили перенести данные из GitHub.com в другую учетную запись на GitHub Enterprise Cloud.

Например, GitHub Enterprise Importer может помочь вашей компании:

  • Внедрение GitHub Enterprise Cloud с размещением данных путем переноса предприятия в GHE.com
  • Использование некоторых функций для GitHub.com, таких как Enterprise Managed Users или новые модели выставления счетов, перенося данные между предприятиями на GitHub.com
  • Преимущество упрощенного администрирования и новых функций путем миграции с GitHub Enterprise Server на GitHub Enterprise Cloud

Если источник миграции является учетной записью GitHub.com, можно перенести отдельные репозитории между организациями или перенести целые организации между предприятиями. Если источником миграции является GitHub Enterprise Server, можно перенести отдельные репозитории.

Данные, которые переносятся GitHub Enterprise Importer, зависят от источника миграции и от того, переносите ли вы репозиторий или организацию.

Рекомендации по миграции на GitHub Enterprise Cloud

Прежде чем использовать GitHub Enterprise Importer, ознакомьтесь со следующими рекомендациями.

  • Если вы уже используете GitHub Enterprise Cloud: план GitHub Enterprise дает право на одно развертывание GitHub Enterprise Cloud.

    Например, если вы уже используете GitHub.com, а также хотите перенести данные GitHub Enterprise Server на GHE.com, использование обоих данных не будет охватываться одним планом.

  • Если вы переносите данные Enterprise Managed Users: вам потребуется интегрироваться с поставщиком удостоверений для управления учетными записями пользователей. Перед началом работы проверьте уровень поддержки поставщика удостоверений. См . раздел AUTOTITLE.

  • Если вы переносите данные GitHub Enterprise Server: обратите внимание, что GitHub применяет ограничения скорости к определенным действиям, которые по умолчанию отключены для GitHub Enterprise Server. См . раздел AUTOTITLE.

  • Если выполняется миграция на GitHub Enterprise Cloud с размещением данных: помните, что некоторые функции недоступны, а для некоторых функций требуется другая или дополнительная настройка. См . раздел AUTOTITLE.

Данные, перенесенные из GitHub Enterprise Server

Чтобы перенести данные GitHub Enterprise Server (GHES), необходимо иметь GHES версии 3.4.1 или более поздней. Перенос данных зависит от используемой версии.

ТоварGHES 3.4.1+GHES 3.5.0+
Источник Git (включая журнал фиксаций)
Запросы на включение внесенных изменений
Проблемы
Milestones
Вики-страницы
Рабочие процессы GitHub Actions
Комментарии к фиксации
Веб-перехватчики (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков")
Защита ветвей
Параметры GitHub Pages
Журнал пользователей для указанных выше данных
Вложения (см . AUTOTITLE)
Выпуски

Различные ограничения размера для каждого репозитория применяются к сжатому архиву в зависимости от версии GHES.

ЛимитGHES <3.8.0GHES 3.8.x-3.11.xGHES 3.12.xGHES 3.13.0+
Источник Git2 ГиБ10GiB20GiB40GiB (общедоступная предварительная версия)
Метаданные2 ГиБ10GiB20GiB40GiB (общедоступная предварительная версия)

Данные, которые не переносятся

В настоящее время следующие данные не переносятся.

  • Teams
  • Доступ пользователя или команды к репозиторию
  • Параметры репозитория для запросов на вытягивание

Защита ветвей

Защита ветви применяет указанный набор правил к определенному шаблону имени ветви или имени ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

Защита ветви всегда будет перенесена, но некоторые правила не будут перенесены. Следующие правила защиты ветви не переносятся.

  • Разрешить определенным субъектам обходить необходимые запросы на вытягивание
  • Требовать утверждения последней отправки
  • Требовать успешного развертывания перед слиянием
  • Блокировка ветви
  • Ограничение отправки, создающих соответствующие ветви
  • Разрешить принудительные отправки

Также действуют следующие ограничения.

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

Данные, перенесенные из GitHub.com

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

Перенос данных для организации

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

  • Teams
  • Репозитории
  • Командный доступ к репозиториям
  • Привилегии членов
  • Веб-перехватчики уровня организации (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков")
  • Имя ветви по умолчанию для новых репозиториев, созданных в организации

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

Членство в команде не** переносится**. После миграции необходимо добавить участников в перенесенные команды. Дополнительные сведения см. в разделе Обзор миграции между продуктами GitHub.

Примечание.

Ссылки на команды, например@octo-org/octo-team, не** обновляются **в рамках миграции организации. Это может вызвать проблемы в целевой организации, например CODEOWNERS файлы, которые не работают должным образом. Дополнительные сведения о том, как предотвратить и устранить эти проблемы, см. в разделе Устранение неполадок миграции с помощью GitHub Enterprise Importer.

Перенос данных для репозитория

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

  • Источник Git (включая журнал фиксаций)
  • Запросы на включение внесенных изменений
  • Проблемы
  • Milestones
  • Вики-сайты (за исключением вложений)
  • Рабочие процессы GitHub Actions
  • Комментарии к фиксации
  • Активные веб-перехватчики (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков")
  • Темы репозиториев
  • Параметры репозитория
    • Защита ветви (дополнительные сведения см. в разделе "Защита ветви")
    • Параметры GitHub Pages
    • Ссылки для автоматической привязки
    • Параметры запроса на вытягивание
      • Автоматическое удаление главная ветвь
      • Разрешить автоматическое слияние
      • Разрешить фиксации слиянием (параметр сообщения фиксации сбрасывается в сообщение по умолчанию)
      • Разрешить слияние скваша (параметр сообщения фиксации сбрасывается на сообщение по умолчанию)
      • Разрешить повторное слияние
  • Выпуски (до 10 ГиБ на каждый репозиторий)
  • Журнал пользователей для указанных выше данных
  • Вложения (см . AUTOTITLE)

Данные, которые не переносятся

В настоящее время следующие данные не переносятся.

При переносе репозитория напрямую команды и группы доступа к репозиториям не переносятся.

Защита ветвей

Защита ветви применяет указанный набор правил к определенному шаблону имени ветви или имени ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

Защита ветви всегда будет перенесена, но некоторые правила не будут перенесены. Следующие правила защиты ветви не переносятся.

  • Разрешить определенным субъектам обходить необходимые запросы на вытягивание
  • Требовать утверждения последней отправки
  • Требовать успешного развертывания перед слиянием
  • Блокировка ветви
  • Ограничение отправки, создающих соответствующие ветви
  • Разрешить принудительные отправки

Также действуют следующие ограничения.

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

Ограничения для перенесенных данных

Существуют ограничения на то, что GitHub Enterprise Importer может перенести. Некоторые из-за ограничений GitHub, а другие являются ограничениями GitHub Enterprise Importer.

Ограничения GitHub

  •         **Ограничение размера 2 ГиБ для одного коммита Git:** Размер отдельного коммита в репозитории Git не должен превышать 2 ГиБ. Если размер любого из ваших коммитов превышает 2 ГиБ, вам нужно будет разделить коммит на более мелкие коммиты, каждый из которых имеет размер 2 ГиБ или меньше.
    
  •         **Ограничение байтов 255 для ссылок на Git:** нет одной [ссылки](https://git-scm.com/book/en/v2/Git-Internals-Git-References) Git, известной как "ссылка", может иметь имя размером более 255 байт. Как правило, это означает, что ссылки не могут содержать более 255 символов, но любые символы, отличные[ от ASCII](https://en.wikipedia.org/wiki/ASCII) , например эмодзи, могут использовать более одного байта. Если какая-либо из ссылок на Git слишком велика, мы вернем четкое сообщение об ошибке.
    
  •         **Ограничение на размер файла 100 МиБ:** После завершения миграции размер отдельного файла в репозитории Git не должен превышать 100 МиБ. Во время миграции репозитория этот лимит увеличивается до 400 МиБ. Рекомендуется использовать Git LFS для хранения больших файлов. Дополнительные сведения см. в разделе [AUTOTITLE](/repositories/working-with-files/managing-large-files).
    

Ограничения GitHub Enterprise Importer

  • Ограничение размера 40 ГБ для репозитория Git (public preview): это ограничение применяется только к исходному коду. Чтобы проверить, превышает ли архив репозитория ограничение, используйте средство git-sizer и просмотрите общий размер большого двоичного объекта в выходных данных. Средство git-sizer также помогает определить потенциальные проблемы, связанные с большими файлами, размером больших двоичных объектов, размером фиксации и числом деревьев, которые могут повлиять на миграцию.
  •         **Ограничение 40 ГиБ для метаданных (public preview):** Importer не может перенести репозитории с более чем 40 ГиБ метаданных. Метаданные включают проблемы, запросы на вытягивание, выпуски и вложения. В большинстве случаев большие метаданные вызваны двоичными ресурсами, подключенными к выпускам. Вы можете исключить выпуски из миграции с `migrate-repo` флагом команды `--skip-releases` , а затем переместить выпуски вручную после миграции.
    

Начало работы

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

Общие сведения о процессе миграции с начала до конца см. в разделе Обзор миграции между продуктами GitHub.