Примечание. GitHub Enterprise Importer в настоящее время находится в общедоступной бета-версии и может быть изменен.
Сведения о поддержке миграции для GitHub Enterprise Importer
GitHub Enterprise Importer может выполнить миграцию в GitHub Enterprise Cloud из любого из поддерживаемых источников миграции. Данные, включенные в каждую миграцию, зависят от источника.
GitHub Enterprise Importer поддерживает миграцию в GitHub Enterprise Cloud из следующих источников.
- Облако Azure DevOps (ADO)
- Bitbucket Server и Bitbucket Data Center 5.14+
- GitHub.com
- GitHub Enterprise Server (GHES) 3.4.1+
Во время бета-версии существуют известные ограничения для Importer, которые применяются ко всем источникам.
Поддержка миграции Azure DevOps
Если источником миграции является Azure DevOps, вы можете перенести репозитории.
Вы можете использовать GitHub Enterprise Importer только для миграции из Azure DevOps Cloud, но не из Azure DevOps Server. Если вы сейчас используете Azure DevOps Server и хотите выполнить миграцию в GitHub, сначала можно выполнить миграцию в Azure DevOps Cloud. Дополнительные сведения см. в статье Миграция в Azure DevOps на сайте Azure.
В настоящее время поддерживается только перенос следующих данных репозитория из Azure DevOps в GitHub Enterprise Cloud.
- Источник Git (включая журнал фиксаций)
- Запросы на вытягивание
- Журнал пользователей для запросов на вытягивание
- Ссылки на рабочие элементы в запросах на вытягивание
- Вложения в запросах на вытягивание
- Защита ветвей для репозитория (защита ветвей на уровне пользователя не включена)
Если вы хотите перенести Azure Pipelines в GitHub Actions, обратитесь к менеджеру по работе с клиентами GitHub.
Поддержка миграции Bitbucket Server
Примечание: Миграции с Bitbucket Server с помощью GitHub Enterprise Importer в настоящее время находятся в закрытой бета-версии и могут быть изменены. Сведения о том, как запросить доступ к бета-версии, см. в статье Присоединение к списку ожидания миграций bitbucket Server.
Миграция с Bitbucket Server поддерживается только для Bitbucket Server или Bitbucket Data Center версии 5.14 или более поздней.
Если источником миграции является Bitbucket Server, вы можете перенести репозитории. В настоящее время поддерживается только перенос следующих данных репозитория с Bitbucket Server на GitHub Enterprise Cloud.
- Источник Git (включая журнал фиксаций)
- Запросы на вытягивание (включая проверки запросов на вытягивание, обязательные рецензенты, комментарии и вложения, но за исключением комментариев на уровне файла)
В настоящее время следующие данные не переносятся.
- Комментарии на уровне файла к запросам на вытягивание
- Разрешения ветви
- Комментарии фиксации
- Параметры репозитория
GitHub Enterprise Importer не переносит конвейеры CI с сервера Bitbucket.
Поддержка миграции GitHub.com
Если источником миграции является GitHub.com, можно перенести отдельные репозитории или целые организации.
При переносе организации создается новая организация в целевой корпоративной учетной записи. Затем следующие данные переносятся в новую организацию.
- Teams
- Репозитории
- Доступ команды к репозиториям
- Привилегии участников
- Веб-перехватчики уровня организации
- Имя ветви по умолчанию для новых репозиториев, созданных в организации
Все репозитории переносятся с помощью частной видимости. Если вы хотите настроить видимость репозитория на общедоступный или внутренний, это можно сделать после миграции с помощью пользовательского интерфейса или API.
Членство в команде не переносится. После миграции необходимо добавить участников в перенесенные команды. Дополнительные сведения см. в разделе Миграция между продуктами GitHub с помощью GitHub Enterprise Importer.
Примечание. Ссылки на команды, такие как @octo-org/octo-team
, не обновляются в рамках миграции организации. Это может привести к проблемам в целевой организации, например CODEOWNERS
к неправильной работе файлов. Дополнительные сведения о предотвращении и устранении этих проблем см. в разделе Устранение неполадок миграции с помощью GitHub Enterprise Importer.
При переносе репозитория напрямую или в рамках миграции организации переносятся только следующие данные.
- Источник Git (включая журнал фиксаций)
- Запросы на вытягивание
- Проблемы
- Вехи
- Вики
- Проекты (классические) на уровне репозитория
- Рабочие процессы GitHub Actions
- Комментарии фиксации
- Активные веб-перехватчики
- Темы репозиториев
- Параметры репозитория
- Защита ветвей (дополнительные сведения см. в разделе "Защита ветвей")
- Параметры GitHub Pages
- Ссылки на автосвязь
- Параметры GitHub Advanced Security
- Параметры запроса на вытягивание
- Автоматическое удаление головных ветвей
- Разрешить автоматическое слияние
- Разрешить фиксации слиянием (параметр сообщения фиксации сбрасывается до сообщения по умолчанию)
- Разрешить слияние сквоша (параметр сообщения фиксации сбрасывается до сообщения по умолчанию)
- Разрешить слияние повторного базирования
- Выпуски (до 10 ГБ на репозиторий)
- Журнал пользователей для указанных выше данных
В настоящее время следующие данные не переносятся.
- Объекты и большие двоичные файлы Git LFS (репозитории, использующие Git LFS, по-прежнему поддерживаются. См. раздел Ограничения GitHub Enterprise Importer)
- GitHub Actions секреты, среды или журнал выполнения рабочего процесса
- Секреты веб-перехватчика
- Секреты GitHub Codespaces
- Code scanning результатов
- Состояния исправления результатов secret scanning
- Оповещения Dependabot
- Секреты Dependabot
- Проекты (классические) на уровне организации
- Любой Projects (новый интерфейс для проектов)
- Обсуждения на уровне репозитория
- Пакеты в GitHub Packages
- Приложения GitHub
- Связи вилок между репозиториями (см. раздел О вилках)
- Доступ пользователей к репозиторию
При непосредственном переносе репозитория команды и доступ команды к репозиториям не переносятся.
Защита ветвей
Защита ветви применяет указанный набор правил к определенному имени ветви или шаблону имени ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
Защита ветвей будет перенесена всегда, но некоторые правила не будут перенесены. Следующие правила защиты ветвей не переносятся.
- Разрешить определенным субъектам обходить необходимые запросы на вытягивание
- Требовать утверждения последней отправки
- Требовать успешного развертывания перед слиянием
- Блокировка ветви
- Ограничение отправки, создающих соответствующие ветви
- Разрешить принудительные отправки
Также действуют следующие ограничения.
- Если правило защиты ветвей при необходимости позволяет указать людей, команды или приложения, исключенные из правила, например "Ограничить пользователей, которые могут отклонять проверки запросов на вытягивание", исключения не будут перенесены.
- Если правило "Разрешить принудительные отправки" включено в режиме "Укажите, кто может принудительная отправка", это правило не будет перенесено.
Поддержка миграции GitHub Enterprise Server
Если источником миграции является GitHub Enterprise Server, вы можете перенести репозитории.
Для миграции с GitHub Enterprise Server (GHES) требуется GHES версии 3.4.1 или более поздней.
Элемент | GHES 3.4.1+ | GHES 3.5.0+ |
---|---|---|
Источник Git (включая журнал фиксаций) | X | X |
Запросы на вытягивание | X | X |
Проблемы | X | X |
Вехи | X | X |
Вики | X | X |
Проекты (классические) на уровне репозитория | X | X |
Рабочие процессы GitHub Actions | X | X |
Комментарии фиксации | X | X |
Активные веб-перехватчики | X | X |
Защита ветвей | X | X |
Параметры GitHub Pages | X | X |
Журнал пользователей для указанных выше данных | X | X |
Выпуски | X |
В зависимости от версии GHES применяются различные ограничения на размер репозитория.
Ограничение | GHES <3.8.0 | GHES 3.8.0+ |
---|---|---|
Источник Git | 2 ГБ | 10 ГБ |
Метаданные | 2 ГБ | 10 ГБ |
В настоящее время следующие данные не переносятся.
- Объекты и большие двоичные файлы Git LFS (репозитории, использующие Git LFS, по-прежнему поддерживаются. См. раздел Ограничения GitHub Enterprise Importer)
- GitHub Actions секреты, среды или журнал выполнения рабочего процесса
- Секреты веб-перехватчика
- Секреты GitHub Codespaces
- Code scanning результатов
- Состояния исправления результатов secret scanning
- Оповещения Dependabot
- Секреты Dependabot
- Проекты (классические) на уровне организации
- Любой Projects (новый интерфейс для проектов)
- Обсуждения на уровне репозитория
- Пакеты в GitHub Packages
- Приложения GitHub
- Связи вилок между репозиториями (см. раздел О вилках)
- Teams
- Доступ пользователей или команд к репозиторию
- Параметры репозитория для запросов на вытягивание
Ограничения
Существуют ограничения на то, что может переносить GitHub Enterprise Importer. Некоторые из них связаны с ограничениями GitHub.com, в то время как другие являются ограничениями самого GitHub Enterprise Importer.
Ограничения GitHub.com
- Ограничение размера 2 ГБ для одной фиксации Git: Размер одной фиксации в репозитории Git не может превышать 2 ГБ. Если какая-либо из фиксаций превышает 2 ГБ, необходимо разделить фиксацию на небольшие фиксации, размер которых составляет 2 ГБ или меньше.
- Ограничение в 255 байт для ссылок Git: Ни одна ссылка на Git, известная как "ссылка", не может иметь имя, превышающее 255 байт. Обычно это означает, что ссылки не могут содержать более 255 символов, но любые символы, отличные от ASCII , такие как эмодзи, могут занимать более одного байта. Если какая-либо из ваших ссылок на Git слишком велика, мы вернем четкое сообщение об ошибке.
- Ограничение на размер файла в 100 МБ: Размер одного файла в репозитории Git не может превышать 100 МБ. Рассмотрите возможность использования Git LFS для хранения больших файлов. Дополнительные сведения см. в разделе Управление большими файлами.
Ограничения GitHub Enterprise Importer
- Ограничение размера 10 ГБ для репозитория Git: Это ограничение применяется только к исходному коду. Чтобы проверить размер репозитория, используйте средство git-sizer и проверка общий размер BLOB-объектов.
- Ограничение в 10 ГБ для метаданных. Importer не может перенести репозитории с более чем 10 ГБ метаданных. Метаданные включают проблемы, запросы на вытягивание, выпуски и вложения. В большинстве случаев большие метаданные вызваны двоичными ресурсами, подключенными к выпускам. Вы можете исключить выпуски из миграции с
migrate-repo
помощью флага--skip-releases
команды, а затем переместить выпуски вручную после миграции. - Объекты Git LFS не перенесены: Importer может переносить репозитории, использующие Git LFS, но сами LFS объекты не будут перенесены. После завершения миграции их можно отправить в пункт назначения миграции в качестве последующей задачи. Дополнительные сведения см. в разделе Дублирование репозиториев.
- Требуются дальнейшие задачи: При миграции между продуктами GitHub некоторые параметры не переносятся и должны быть перенастроены в новом репозитории. Список последующих задач, которые необходимо выполнить после каждой миграции, см. в разделе Миграция между продуктами GitHub с помощью GitHub Enterprise Importer.
- Функции отложенного поиска кода: Повторное индексирование индекса поиска может занять несколько часов после переноса репозитория, а поиск по коду может возвращать непредвиденные результаты, пока повторное индексирование не будет завершено.