有一个托管00_Parent_Project
的组:源项目包含例如.gitlab-ci.yml
模板:
Group
[project] 00_Parent_Project
[repo] .gitlab-ci.yml
如何使用GitLab API克隆源项目,以便目标项目已包含带有.gitlab-ci.yml
的存储库?:
Group
[project] 00_Parent_Project
[repo] .gitlab-ci.yml
[project] 01_Child_Project
[repo] .gitlab-ci.yml
[project] 02_Child_Project
[repo] .gitlab-ci.yml
我不确定是否应该考虑在项目之间共享CI模板,因为目标项目将由来自后端服务器的请求创建。
最有效的方法是什么?
答案 0 :(得分:0)
一种实现此目的的方法是使用以下标头向POST
发送/api/v4/projects/
请求:
Content-Type: application/json
Private-Token: <gitlab token>
和身体,例如:
{
"name": "01_New_Child_Project",
"namespace_id": <ID of a Group>,
"description": "Project description here",
"import_url": "https://username:password@gitlab.example.com/my_group/00_parent_project.git"
}
在创建新项目后,GitLab就从父项目导入存储库。就我而言,整个父项目的存储库都可以用作子项目的模板,因此无需采取进一步措施。
在其他情况下,可以通过API删除不必要的文件:GitLab Repository files API描述了此类操作。
要考虑的另一件事是重构代码,以使import_url
值不以纯文本形式出现:为什么它包含用户名和密码!