在同一组内克隆项目,并使用源项目 .github-ci.yml 作为目标项目中的模板
Clone project withing the same group, and use source project's .gitlab-ci.yml as a template in target project
有一个组主持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 模板,因为目标项目将由来自后端服务器的请求创建。
实现此目标的最有效方法是什么?
实现此目的的一种方法是使用以下 headers:
向 /api/v4/projects/
发送 POST
请求
Content-Type: application/json
Private-Token: <gitlab token>
和body喜欢:
{
"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 立即从 parent 项目导入存储库。在我的例子中,整个 parent 项目的存储库可以用作 children 项目的模板,因此不需要进一步的操作。
在其他情况下,可以通过 API 删除不需要的文件:GitLab Repository files API 描述了此类操作。
要考虑的另一件事是重构代码,使 import_url
值不以纯文本形式出现:为什么它包含用户名和密码!
有一个组主持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 模板,因为目标项目将由来自后端服务器的请求创建。
实现此目标的最有效方法是什么?
实现此目的的一种方法是使用以下 headers:
向/api/v4/projects/
发送 POST
请求
Content-Type: application/json
Private-Token: <gitlab token>
和body喜欢:
{
"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 立即从 parent 项目导入存储库。在我的例子中,整个 parent 项目的存储库可以用作 children 项目的模板,因此不需要进一步的操作。
在其他情况下,可以通过 API 删除不需要的文件:GitLab Repository files API 描述了此类操作。
要考虑的另一件事是重构代码,使 import_url
值不以纯文本形式出现:为什么它包含用户名和密码!