我想设置下面描述的配置:
注册用户无法直接将其更改推送到主人.他必须推动这些变化进行审核:
git push origin master - 它应该被Gerrit拒绝(origin = Gerrit)
git push origin HEAD:refs/for/master - Gerrit应该允许它
注册用户可以创建新分支.该分支将被视为两个或更多开发人员之间的备份和合作方式,因此不应对其进行审查.
git push origin xyz_abc - Gerrit应该允许它
我该如何配置Gerrit来实现这样的功能?
在任何地方都没有好的指示,所以我想记录下这里的步骤.
1.导航到项目的"访问"页面
项目>列表> your_project>访问
2.编辑访问权限
单击"编辑"按钮
3.添加对refs/heads/*的引用
这是所有直接推送的参考.我们将配置谁可以对此路径做什么.
点击"添加参考"并输入'refs/heads/*'(无引号)
4.拒绝"推送"权限
推送权限是控制谁可以直接推送的权限.仍然允许合并推送和推送到Gerrit(参见下面的注释).
5.保存更改
而且你已经完成了.完成的配置应如下所示:
注意
如果这不起作用,请确保在refs/for/refs/*上将Push权限设置为ALLOW - 这是允许推送到Gerrit的权限.
AFAIK 您可以为 gerrit 中的每个存储库/项目设置权限。例如,谁可以推送/谁可以强制推送/谁可以批准您的更改等等。检查以下链接是否有用:
https://git.eclipse.org/r/Documentation/access-control.html