Как включить проблемы GitHub и PR в API репозитория, инициируемого API, в GitLab?
Многие академические организации присутствуют как таковые на GitHub, но могут также иметь собственный экземпляр GitLab CE.
Чтобы автоматически и полностью сделать резервную копию первого на втором, они могут захотеть запустить какой-то скрипт, который запускает их GitLab для импорта всех репозиториев из их организации GitHub. Это возможно через графический интерфейс с github_importer
( документ). Это не возможно вручную и постоянно для многих репо.
Использование GitLab'sCreate project
а такжеImport file
API, я собрал вместе этот (Bash) код, который создает проекты GitLab из данных репозиториев GitHub:
curl --request POST
--header "PRIVATE-TOKEN: $API_SCOPE" \
--form "namespace_id=$GROUP_ID" \
--form "path=$REPO" \
--form "import_url=https://github.com/$ORG/$REPO \
https://git.domain.edu/api/v4/projects/
ORG
будет исходной организацией на GitHub иGROUP_ID
посвященныйGitHub-archive
группа на экземпляре GitLab CE.
Однако при этом импортируются только файлы и история Git, а не проблемы GitHub, PR, ярлыки и т. Д., Но они необходимы для полного резервного копирования. Итак, мне интересно:
- Существует ли третья конечная точка API, относящаяся к этой задаче?
/projects/import
кажется,требуетfile
атрибута, но попытка сначала прочитать список файлов из GitHub, вероятно, слишком быстро исчерпает лимит API для возможного решения для резервного копирования. - Есть ли другой
--form ""
флаг можно добавить к/projects
запросы, которые заставляют его вести себя какgithub_importer
? - Может быть, у последнего есть недокументированный API?
- Нужно ли использовать
gitlab-rake import:github[…]
?
Спасибо за любые подсказки на вышеупомянутые вопросы или ссылки на существующие решения / инструменты / сценарии, независимо от языка. Спасибо!
PS: Да, приведенный выше скрипт будет излишним по сравнению со встроенным в GitLabRepository mirroring
, но это не включает проблемы, PR и ярлыки.
1 ответ
По состоянию на август 2018 года 4.
кажется, единственный ответ. Когда проблема GitLab CI 34848 будет реализована, она может стать опцией для 1.
,