GitHub上有很多学术组织,但也可能有一个自托管的GitLab CE实例。
为了自动将前者完全备份到后者,他们可能想要运行某种脚本来触发其GitLab从其GitHub组织导入所有存储库。通过带有github_importer
(docu)的GUI可以实现。对于许多存储库,手动和连续地操作是不可行的。
使用GitLab的Create project
和Import file
API,我困惑了这个(Bash)代码,该代码从给定的GitHub存储库创建GitLab项目:
static/view-fr.json
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/
是GitHub上的源组织,而ORG
是GitLab CE实例上的专用GROUP_ID
组。
但是,这仅导入文件和Git历史记录,而不导入GitHub问题,PR,标签等,但是完全备份需要这些文件和Git历史记录。所以,我想知道:
GitHub-archive
似乎 require 一个/projects/import
属性,但是尝试首先从GitHub读取文件列表,对于可行的备份解决方案而言,可能会太快耗尽API限制。file
标志可以添加到--form ""
请求中,使其表现得像/projects
?gitlab-rake import:github[…]
?谢谢您对以上问题的任何提示,或对现有解决方案/工具/脚本的指导,无论使用哪种语言。谢谢!
PS:是的,与GitLab's built-in Repository mirroring
相比,上述脚本会过分杀伤力,但这不包括问题,PR和标签。