О миграциях между GitHub продуктами
С GitHub Enterprise Importerпомощью , вы можете перенести данные из GitHub Enterprise Server в GitHub Enterprise Cloud, или с GitHub.com другой аккаунт на GitHub Enterprise Cloud.
Если ваш источник миграции — аккаунт на GitHub.com, вы можете мигрировать отдельные репозитории между организациями или целые организации между предприятиями. Если ваш источник миграции — GitHub Enterprise Server, вы можете мигрировать отдельные репозитории.
Данные зависят GitHub Enterprise Importer от источника миграции и от того, переносите ли вы репозиторий или организацию.
Если в целевой организации или предприятии включены наборы правил, история мигрированного репозитория может нарушать эти правила. Чтобы позволить миграцию без отключения ваших правил, добавьте «Миграции репозитория» в список обхода для каждого применимого набора правил. Этот обход действует только во время миграции. После завершения правила будут применяться ко всем новым взносам.
Для настройки обхода:
- Перейдите к каждому набору правил для каждого предприятия или организации.
- В разделе «Список обхода» нажмите « Добавить обход».
- Выберите миграции репозиторий.
Дополнительные сведения см. в разделе [AUTOTITLE и Создание наборов правил для репозиториев в организации](/enterprise-cloud@latest/migrations/troubleshooting/setting-ruleset-bypasses-for-repository-migrations).
Данные, которые мигрируются из GitHub Enterprise Server
Чтобы перейти с GitHub Enterprise Server (GHES), вам нужно иметь версию GHES 3.4.1 или выше. Перенос данных зависит от используемой версии.
| Товар | GHES 3.4.1+ | GHES 3.5.0+ |
|---|---|---|
| Источник Git (включая журнал фиксаций) | ||
| Запросы на включение внесенных изменений | ||
| Проблемы | ||
| Milestones | ||
| Вики-страницы |
GitHub Actions Рабочие процессы | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Can be migrated" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-check" aria-label="Can be migrated" role="img"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg> |
Комментарии к фиксации | | | Веб-перехватчики (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков") | | | Защита ветвей | | | ПараметрыGitHub Pages | | | Журнал пользователей для указанных выше данных | | | Вложения (см . AUTOTITLE) | | | Выпуски | | |
Различные ограничения размера для каждого репозитория применяются к сжатому архиву в зависимости от версии GHES.
| Лимит | GHES <3.8.0 | GHES 3.8.x-3.11.x | GHES 3.12.x | GHES 3.13.0+ |
|---|---|---|---|---|
| Источник Git | 2 ГиБ | 10GiB | 20GiB | 40GiB (общедоступная предварительная версия) |
| Метаданные | 2 ГиБ | 10GiB | 20GiB | 40GiB (общедоступная предварительная версия) |
Данные, которые не переносятся
В настоящее время следующие данные не переносятся.
- Журналы аудита
- Code scanning Результаты
- Codespaces Секреты
- Фиксация проверки состояния
- Dependabot Оповещения
- Dependabot Секреты
- Обсуждения на уровне репозитория
- Изменение журнала комментариев проблемы и примечаний запроса на вытягивание
- Связи вилок между репозиториями (см . AUTOTITLE)
- GitHub Actions Секреты, переменные, среды, самостоятельные раннеры, крупное средство выполненияS, артефакты рабочих процессов или история запуска рабочих процессов
- Установки приложений GitHub и приложений GitHub
- Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) объекты и большие бинарные файлы (репозитории с Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) использующими всё ещё поддерживаются, см. Ограничения GitHub Enterprise Importer)
- Ссылки от фиксаций к запросам на вытягивание, которые были повторно объединены
- Упоминания пользователей, команд и организаций в телах pull request, issue, release и комментариев (первоначально упомянутое имя пользователя сохраняется)
- Пакеты в GitHub Packages
- Projects (опыт New Projects)
- Ссылки между запросами на вытягивание и проблемами в разных репозиториях (см . AUTOTITLE)
- Состояния восстановления secret scanning результатов
- Репозитории, принадлежащие учетным записям пользователей
- Веб-канал действий репозитория
- Свойства репозитория и пользовательские свойства (см. Пользовательские свойства)
- Звезды репозитория
- Наблюдатели репозитория
- Наборы правил
- Побочные выпуски (см. О проблемах)
- Правила защиты тегов
- Доступ пользователей к репозиторию
- Профили пользователей, SSH-ключи, ключи для подписи или personal access tokens
- Секреты веб-перехватчика
- Teams
- Доступ пользователя или команды к репозиторию
- Параметры репозитория для запросов на вытягивание
Защита ветвей
Защита ветви применяет указанный набор правил к определенному шаблону имени ветви или имени ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
Защита ветви всегда будет перенесена, но некоторые правила не будут перенесены. Следующие правила защиты ветви не переносятся.
- Разрешить определенным субъектам обходить необходимые запросы на вытягивание
- Требовать утверждения последней отправки
- Требовать успешного развертывания перед слиянием
- Блокировка ветви
- Ограничение отправки, создающих соответствующие ветви
- Разрешить принудительные отправки
Также действуют следующие ограничения.
- Если правило защиты ветви при необходимости позволяет указать людей, команды или приложения, которые исключены из правила, например "Ограничить, кто может закрыть проверка запроса на вытягивание", исключения не будут перенесены.
- Если правило "Разрешить принудительная отправка" включено в режиме "Указать, кто может принудительная отправка", правило не будет перенесено.
Данные, которые мигрируются из GitHub.com
Если ваш источник миграции — аккаунт на GitHub.com, вы можете мигрировать отдельные репозитории между организациями или целые организации между предприятиями.
Перенос данных для организации
При миграции организации создается новая организация в целевой корпоративной учетной записи. Затем следующие данные переносятся в новую организацию.
- Teams
- Репозитории
- Командный доступ к репозиториям
- Привилегии членов
- Веб-перехватчики уровня организации (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков")
- Имя ветви по умолчанию для новых репозиториев, созданных в организации
Все репозитории переносятся с помощью частной видимости. Если вы хотите задать видимость репозитория для общедоступной или внутренней, это можно сделать после миграции с помощью пользовательского интерфейса или API.
Членство в команде не** переносится**. После миграции необходимо добавить участников в перенесенные команды. Дополнительные сведения см. в разделе Обзор миграции между продуктами GitHub.
Примечание.
Ссылки на команды, например`@octo-org/octo-team`, не** обновляются **в рамках миграции организации. Это может вызвать проблемы в целевой организации, например `CODEOWNERS` файлы, которые не работают должным образом. Для получения дополнительной информации о том, как предотвратить и решить эти проблемы, см. [AUTOTITLE](/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/troubleshooting-your-migration-with-github-enterprise-importer#team-references-are-broken-after-an-organization-migration).
Перенос данных для репозитория
При переносе репозитория напрямую или в рамках миграции организации переносятся только следующие данные.
- Источник Git (включая журнал фиксаций)
- Запросы на включение внесенных изменений
- Проблемы
- Milestones
- Вики-сайты (за исключением вложений)
- GitHub Actions Рабочие процессы
- Комментарии к фиксации
- Активные веб-перехватчики (необходимо повторно включить после миграции, см. раздел "Включение веб-перехватчиков")
- Темы репозиториев
- Параметры репозитория
- Защита ветви (дополнительные сведения см. в разделе "Защита ветви")
- ПараметрыGitHub Pages
- Ссылки для автоматической привязки
- Параметры запроса на вытягивание
- Автоматическое удаление главная ветвь
- Разрешить автоматическое слияние
- Разрешить фиксации слиянием (параметр сообщения фиксации сбрасывается в сообщение по умолчанию)
- Разрешить слияние скваша (параметр сообщения фиксации сбрасывается на сообщение по умолчанию)
- Разрешить повторное слияние
- Выпуски (до 10 ГиБ на каждый репозиторий)
- Журнал пользователей для указанных выше данных
- Вложения (см . AUTOTITLE)
Данные, которые не переносятся
В настоящее время следующие данные не переносятся.
- Журналы аудита
- Code scanning Результаты
- Codespaces Секреты
- Фиксация проверки состояния
- Dependabot Оповещения
- Dependabot Секреты
- Обсуждения на уровне репозитория
- Изменение журнала комментариев проблемы и примечаний запроса на вытягивание
- Связи вилок между репозиториями (см . AUTOTITLE)
- GitHub Actions Секреты, переменные, среды, самостоятельные раннеры, крупное средство выполненияS, артефакты рабочих процессов или история запуска рабочих процессов
- Установки приложений GitHub и приложений GitHub
- Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) объекты и большие бинарные файлы (репозитории с Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) использующими всё ещё поддерживаются, см. Ограничения GitHub Enterprise Importer)
- Ссылки от фиксаций к запросам на вытягивание, которые были повторно объединены
- Упоминания пользователей, команд и организаций в телах pull request, issue, release и комментариев (первоначально упомянутое имя пользователя сохраняется)
- Пакеты в GitHub Packages
- Projects (опыт New Projects)
- Ссылки между запросами на вытягивание и проблемами в разных репозиториях (см . AUTOTITLE)
- Состояния восстановления secret scanning результатов
- Репозитории, принадлежащие учетным записям пользователей
- Веб-канал действий репозитория
- Свойства репозитория и пользовательские свойства (см. Пользовательские свойства)
- Звезды репозитория
- Наблюдатели репозитория
- Наборы правил
- Побочные выпуски (см. О проблемах)
- Правила защиты тегов
- Доступ пользователей к репозиторию
- Профили пользователей, SSH-ключи, ключи для подписи или personal access tokens
- Секреты веб-перехватчика
При переносе репозитория напрямую команды и группы доступа к репозиториям не переносятся.
Защита ветвей
Защита ветви применяет указанный набор правил к определенному шаблону имени ветви или имени ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
Защита ветви всегда будет перенесена, но некоторые правила не будут перенесены. Следующие правила защиты ветви не переносятся.
- Разрешить определенным субъектам обходить необходимые запросы на вытягивание
- Требовать утверждения последней отправки
- Требовать успешного развертывания перед слиянием
- Блокировка ветви
- Ограничение отправки, создающих соответствующие ветви
- Разрешить принудительные отправки
Также действуют следующие ограничения.
- Если правило защиты ветви при необходимости позволяет указать людей, команды или приложения, которые исключены из правила, например "Ограничить, кто может закрыть проверка запроса на вытягивание", исключения не будут перенесены.
- Если правило "Разрешить принудительная отправка" включено в режиме "Указать, кто может принудительная отправка", правило не будет перенесено.
Ограничения для перенесенных данных
Существуют ограничения на то, что GitHub Enterprise Importer может перенести. Некоторые из-за ограничений GitHub, а другие являются ограничениями GitHub Enterprise Importer.
Ограничения GitHub
- Ограничение размера 2 ГиБ для одного коммита Git: Размер отдельного коммита в репозитории Git не должен превышать 2 ГиБ. Если размер любого из ваших коммитов превышает 2 ГиБ, вам нужно будет разделить коммит на более мелкие коммиты, каждый из которых имеет размер 2 ГиБ или меньше.
- Ограничение байтов 255 для ссылок на Git: нет одной ссылки Git, известной как "ссылка", может иметь имя размером более 255 байт. Как правило, это означает, что ссылки не могут содержать более 255 символов, но любые символы, отличные от ASCII , например эмодзи, могут использовать более одного байта. Если какая-либо из ссылок на Git слишком велика, мы вернем четкое сообщение об ошибке.
- Ограничение на размер файла 100 МиБ: После завершения миграции размер отдельного файла в репозитории Git не должен превышать 100 МиБ. Во время миграции репозитория этот лимит увеличивается до 400 МиБ. Рекомендуется использовать Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) для хранения больших файлов. Дополнительные сведения см. в разделе Управление большими файлами.
Ограничения GitHub Enterprise Importer
- Ограничение размера 40 ГБ для репозитория Git (Публичный предварительный просмотр): это ограничение применяется только к исходному коду. Чтобы проверить, превышает ли архив репозитория ограничение, используйте средство git-sizer и просмотрите общий размер большого двоичного объекта в выходных данных. Средство git-sizer также помогает определить потенциальные проблемы, связанные с большими файлами, размером больших двоичных объектов, размером фиксации и числом деревьев, которые могут повлиять на миграцию.
- **Лимит 40 ГиБ для метаданных (Публичный предварительный просмотр):**Importer Нельзя мигрировать в репозитории с более чем 40 ГиБ метаданных. Метаданные включают проблемы, запросы на вытягивание, выпуски и вложения. В большинстве случаев большие метаданные вызваны двоичными ресурсами, подключенными к выпускам. Вы можете исключить выпуски из миграции с
migrate-repoфлагом команды--skip-releases, а затем переместить выпуски вручную после миграции. - Ограничение размера файла в 400 МБ: при переносе репозитория с GitHub Enterprise Importerв репозитории Git не может быть больше 400 МБ. Рекомендуется использовать Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) для хранения больших файлов. Дополнительные сведения см. в разделе Управление большими файлами.
- Объекты Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git) не перенесены: Importer может перенести репозитории, использующие Git LFS (Git Large File Storage — поддержка хранения больших файлов в Git), но сами объекты LFS не будут перенесены. Их можно отправить в место назначения миграции в качестве последующей задачи после завершения миграции. Дополнительные сведения см. в разделе Дублирование репозиториев.
- Необходимы следующие задачи. При миграции между продуктами GitHub определенные параметры не переносятся и должны быть перенастроены в новом репозитории. Список последующих задач, которые необходимо выполнить после каждой миграции, см. в разделе Обзор миграции между продуктами GitHub.
- Функции поиска отложенного кода: повторное индексирование индекса поиска может занять несколько часов после переноса репозитория, а поиски кода могут возвращать непредвиденные результаты до завершения повторной индексации.
- Наборы правил, настроенные для вашей организации, могут привести к сбою миграции: например, если вы настроили правило, требующее адреса электронной почты для автор фиксации
@monalisa.catзаканчиваться, а репозиторий, с которым вы переносите, содержит фиксации, которые не соответствуют этому правилу, миграция завершится ошибкой. Дополнительные сведения о наборах правил см. в разделе Сведения о наборе правил. - Содержимое манекена может быть недоступен для поиска: Манекены являются заполнителями пользователей, к которым связан импортированный контент (например, проблемы, запросы на вытягивание, комментарии и т. д.). При поиске содержимого, связанного с манекеном, например назначенными проблемами, проблемы могут быть не найдены. После восстановления манекена содержимое должно быть найдено с помощью нового владельца. Дополнительные сведения см. в разделе Восстановление манекенов для GitHub Enterprise Importer.
Начало работы
Прежде чем переходить между GitHub продуктами, продумайте, как вы будете проводить миграцию. Прежде чем переносить все данные, необходимо выбрать кого-то для запуска миграции. Необходимо предоставить пользователю необходимый доступ как для источника, так и для назначения миграции. Мы также рекомендуем сначала запустить пробную миграцию.
Общие сведения о процессе миграции с начала до конца см. в разделе Обзор миграции между продуктами GitHub.