github - 如何在 API 触发的 repo 导入 GitLab 中包含 GitHub 问题和 PR?
问题描述
许多学术组织都存在于 GitHub 上,但也可能有一个自托管的 GitLab CE 实例。
为了自动将前者完全备份到后者,他们可能想要运行某种脚本来触发他们的 GitLab 从他们的 GitHub org 导入所有 repos。这可以通过带有github_importer
( docu ) 的 GUI 来实现。对于许多 repos 来说,手动和连续是不可行的。
使用 GitLabCreate project
和Import file
API,我将这段 (Bash) 代码拼凑在一起,它从给定的 GitHub 存储库创建 GitLab 项目:
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 上的源组织和GitLab CE 实例上GROUP_ID
的专用组。GitHub-archive
但是,这只会导入文件和 Git 历史记录,而不是 GitHub 问题、PR、标签等,但这些都是完整备份所需要的。所以,我想知道:
- 是否有与此任务相关的第三个 API 端点?
/projects/import
似乎需要一个file
属性,但尝试首先从 GitHub 读取文件列表,对于可行的备份解决方案而言,可能会过快耗尽 API 限制。 - 是否有另一个
--form ""
标志可以添加到/projects
请求中,使其表现得像github_importer
? - 后者是否可能有未记录的 API?
- 需要用
gitlab-rake import:github[…]
吗?
感谢您对上述问题的任何提示,或指向现有解决方案/工具/脚本的指针,无论语言如何。谢谢!
PS:是的,与GitLab 的内置Repository mirroring
脚本相比,上面的脚本有点过头了,但这也不包括问题、PR 和标签。
解决方案
截至 2018 年 8 月,4.
这似乎是唯一的答案。一旦GitLab 自己的“导入存储库 API 端点”问题得到实施,它可能会成为1.
.
推荐阅读
- mysql - 如何使用子查询或派生表查询表?
- c++ - 如何在cmake项目中使用c++20
- apache - 如何使用 Apache 将子域主机转发到 proxypass?
- flutter - 当我更改下拉按钮时,它会影响下一个
- python - 从 unyt 包导入类时 PyCharm 找不到引用
- linux - 在 CentOS 7 上无法从 Docker 容器内访问网络
- python - 带有补充自定义词典的拼写校正器
- matlab - 使用有限差分的二阶 ODE 近似
- vue.js - 将 b 表的每个单元格中的文本切换到输入框并返回
- php - 仅来自特定日期的日期时间值不正确 1292 Laravel 5.7