我使用gitlab-api和Python以root身份登录。在服务器上,我有一个git存储库,它包含我的模板(示例)代码。但是,此模板代码不在Adminstrator下,而是在我自己的命名空间(教师/模板)下。我想将此模板项目分发给25名学生作为一项任务,即将此模板分配给另外25个项目,但是在不同的命名空间/组中,例如StudentsGroup / assignment1,StudentsGroup / assignment2 ...和soforth。
有谁能告诉我实现它的最佳方法是什么?
在gitlab api中,我看到了两种可能性:
第一个选项:
Admin fork relation
允许修改现有项目之间的分叉关系。仅适用于管理员。 在现有项目之间创建一个fork / from关系。
POST / projects /:id / fork /:forked_from_id
参数:
id (required) - The ID of the project
forked_from_id: (required) - The ID of the project that was forked from
第二个选项:
Fork项目
将项目分配到经过身份验证的用户的用户名称空间。
POST / projects / fork /:id
参数:
id (required) - The ID of the project to be forked
答案 0 :(得分:2)
如果你有gitlab-admin权限,那么第一个选项是目前实现这一目标的唯一方法。
但是有一个问题(https://gitlab.com/gitlab-org/gitlab-ce/issues/21591)和一个合并请求(https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6213)将namespace_id参数添加到第二个选项。如果幸运的话,下一个gitlab版本(8.12)将添加此功能(gitlab通常会在每个月的22个月发布)。
答案 1 :(得分:0)
截至2015年9月6日,尚无解决方案。所以,我找到了一个解决方法。
开始for循环:
使用普通的创建项目API创建空学生/ jobs_ {count} .git
在本地磁盘中,不断更改脚本文件中的远程源,例如git remote set-url origin git @ server:Students / jobs_ {count} .git
推送文件git push origin master
for循环结束
如果有人对该脚本感兴趣,您可以ping我或在删除凭据后稍后上传。