Подготовка исходной организации к GitHub
-
Убедитесь, что у вас есть разрешения владельца в репозиториях исходной организации.
-
Создание маркера доступа с областями
repo
иadmin:org
в GitHub.com. -
Чтобы свести к минимуму время простоя, создайте список репозиториев, которые необходимо экспортировать из исходного экземпляра. Можно добавить сразу несколько репозиториев для экспорта с помощью текстового файла, в котором указаны URL-адреса каждого репозитория в отдельной строке.
Экспорт репозиториев организации
Note
Связи вилок не сохраняются после миграции.
Чтобы экспортировать данные репозитория из GitHub.com, используйте API миграций.
API миграций в настоящее время доступен в предварительной версии. Это означает, что конечные точки и параметры могут быть изменены в будущем.
Создание архива миграции
Note
Блокировка репозитория предотвращает доступ на запись к репозиторию. Связать новые команды или участников совместной работы с заблокированным репозиторием невозможно.
Если вы выполняете пробный запуск, блокировать репозиторий не нужно. При переносе данных из используемого репозитория GitHub настоятельно рекомендует блокировать репозиторий. Дополнительные сведения см. в разделе Сведения о миграции ghe-миграции.
-
Уведомите членов вашей организации о том, что вы планируете выполнять миграцию. Экспорт может занять несколько минут в зависимости от количества экспортируемых репозиториев. Полная миграция, включая импорт, может занять несколько часов, поэтому рекомендуется выполнить пробный запуск, чтобы определить, сколько времени займет весь процесс. Дополнительные сведения см. в разделе Сведения о миграции ghe-миграции.
-
Запустите миграцию, отправив запрос
POST
к конечной точке миграции. Что вам понадобится:-
Маркер доступа для проверки подлинности
-
Список репозиториев, которые требуется перенести:
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X POST \ -H "Accept: application/vnd.github+json" \ -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \ https://api.github.com/orgs/ORG_NAME/migrations
-
Если вы хотите заблокировать репозитории перед их переносом, убедитесь, что для параметра
lock_repositories
задано значениеtrue
. Настоятельно рекомендуется сделать это. -
Вы можете исключить вложения файлов, передав
exclude_attachments: true
в конечную точку. Вложения файлов могут быть большими и могут без необходимости увеличить размер окончательного архива миграции. Окончательный размер архива должен быть меньше 20 ГБ.
Этот запрос возвращает уникальный объект
id
, представляющий миграцию. Он потребуется для последующих вызовов API миграций. -
-
Отправьте запрос
GET
в конечную точку статуса миграции, чтобы получить статус миграции. Что вам понадобится:-
Маркер доступа для проверки подлинности
-
Уникальный
id
миграции:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ https://api.github.com/orgs/ORG_NAME/migrations/ID
Миграция может находиться в одном из указанных ниже состояний.
pending
— это означает, что миграция еще не запущена.exporting
— это означает, что миграция находится в процессе выполнения.exported
— это означает, что миграция успешно завершена.failed
— это означает, что миграция завершилась сбоем.
-
-
После экспорта миграции скачайте архив миграции, отправив запрос
GET
к конечной точке загрузки миграции. Что вам понадобится:-
Маркер доступа для проверки подлинности
-
Уникальный
id
миграции:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ -L -o migration_archive.tar.gz \ https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
-
-
Архив миграции автоматически удаляется через семь дней. Если вы предпочитаете удалить его раньше, можно отправить запрос
DELETE
в конечную точку удаления архива миграции. Что вам понадобится:-
Маркер доступа для проверки подлинности
-
Уникальный
id
миграции:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X DELETE \ -H "Accept: application/vnd.github+json" \ https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
-
-
Сведения о подготовке архивных данных миграции для импорта в экземпляр GitHub Enterprise Server см. в разделе "Перенос данных на GitHub Enterprise Server".