我想设置下面描述的配置:
注册用户无法将其更改直接推送到master。他必须推动这些变化进行审核:
git push origin master
- 它应该被Gerrit(origin = Gerrit)
git push origin HEAD:refs/for/master
- Gerrit
注册用户可以创建新分支。该分支将被视为两个或更多开发人员之间的备份和合作方式,因此不应对其进行审查。
git push origin xyz_abc
- Gerrit
我应该如何配置Gerrit
来实现此类功能?
答案 0 :(得分:7)
在任何地方都没有好的指示,所以我想记录下这里的步骤。
<强> 1。导航到项目的“访问权限”页面
项目&gt;列表&gt; your_project&gt;访问
<强> 2。修改权限
单击“编辑”按钮
第3。添加引用refs / heads / *
这是所有直接推送的参考。我们将配置谁可以为此路径做些什么。
点击&#34;添加参考&#34;并输入&#39; refs / heads / *&#39; (没有引号)
<强> 4。拒绝&#34; Push&#34;许可强>
推送权限是控制谁可以直接推送的权限。仍然允许合并推送和推送到Gerrit(见下面的注释)。
答案 1 :(得分:0)
AFAIK您可以为gerrit中的每个repo /项目设置权限。例如谁可以推/谁可以强制推/谁可以批准您的更改等等。检查以下链接是否有用:
答案 2 :(得分:0)
如果有许多分支,您可以使用名称空间(例如dev / *)进行分支,并为这些名称空间设置访问控制。
答案 3 :(得分:0)
在mmelnik的指导下,对此thread的回答。
当引用重叠时,一次只能使用其中之一(更为通用)。
因此,您不应为master设置拒绝权限并允许所有其他分支,而可以为开发分支使用前缀,并使用以下引用允许推送到它们:
^refs/heads/YourPrefix.*
注意:在正则表达式的开头和结尾保留^
和*
。
答案 4 :(得分:0)
您需要更改项目的访问设置,然后您需要使用 Exclusive
标志来覆盖 refs/heads/master
的拒绝设置。通过这样的配置,您应该能够实现“允许推送到除 master
分支之外的任何地方。