gerrit配置当前工程,包括push权限,Review权限,每个分支的独立权限等

新版的gerrit左上角BROWSE》Repositories》选择对应的仓库工程,然后左边工程名下会有Access,这个就是当前工程的所有配置信息;如图

 

 

1、配置独立分支权限,比如只允许某些组有权限,其他组没有

  创建新的Reference》名称为:refs/heads/分支名,添加一个权限类型,比如Read,然后在Read下面添加对应组,那该组就有Read权限;再比如Push()、Label Code-Review(+1、+2权限)、Submit(合并代码权限)、Create Reference(创建权限配置)

 

2、对Projects List的管理

  创建新的Reference》名称为:refs/* 这代表对当前工程所有东西,包括所有分支、标签等以及其他配置的管理,相当于这是总的管理,不管工程后面多少分支,多少不同分支的标签等;

  以此类似,还有refs/for/*、refs/heads/*、refs/for/refs/*、refs/tags/*

  refs/for/*、refs/for/refs/*也是用来管理push权限的,如果需要限制用户push功能,可以将用户组添加至PUSH下选择BLOCK。

 

3、另外个人开发分支也是挺重要的,用户可以在个人分支上暂存自己的代码,也就是给个独立区域;

  添加refs/heads/sandbox/${username}/*,然后选择权限Create Reference和Push,再添加对应组即可;

 

下面介绍下创建的权限类型:

1、Create Reference

  用户可以创建新的references, branches or tags, 创建时引用必须不存在,不能删除已经创建的引用,如果仅仅推送标签,给refs/tags/*赋予Create Reference权限,这个权限通常用在创建某个命名空间下的分支, 如:某个部门自由创建分支权限refs/heads/hello/*,给某用户自由创建分支权限, ,refs/heads/sandbox/${username}/*赋予Create Reference权限,如果你这样赋予Create Reference权限,记得同时赋予push force权限, 这样拥有清理

 

 

 

2、Forge Author && Forge Committer && Forge Server

  查看提交中AuthorCommitter,Author一般表示谁创建了这个提交,也可以用git commit --amend --reset-author等命令修改,Committer一般表示谁修改了这个提交,在使用git commit --amend等命令时修改,通常Gerrit需要在Author和提交的Committer认证信息中至少一个,与uploading user注册过的邮箱地址匹配,Forge Author和Forge Committer允许用户绕过提交时的身份验证,Forge Author允许提交中Author信息不经过验证, 这个权限在下面场景非常有效,通过邮件接收第三方补丁,cherry-pick其他人的分支提交,审查合并前修改其他人的一些次要问题.,默认在All-Projects赋予Registered Users组Forge Author权限.,Forge Committer允许提交中Committer信息不经过验证和不验证匿名标签对象,通常在需要其他服务器自动提交时有用,Forge Server允许在提交中Committer信息使用Server的用户名和邮箱. 这个权限在强制推送git filter-branch修改过信息的提交和由这个Gerrit Code Review server创建的合并提交时有用.,在etc/gerrit.config可以配置Server的用户名和邮箱,user.name默认值Gerrit Code Review, user.email默认值在启动时生成gerrit@hostname

 

 

 3、Owner

允许修改项目以下配置:

改变项目描述
通过SSH创建新的分支
通过Web界面创建和删除分支
赋予和撤销任何访问权限,包括Owner权限
子命名空间的所有权可以通过命名空间格式来委派. 要委派以qa/开始的所有分支权限给QA群组,给refs/heads/qa/*添加Owner权限。 QA小组的成员可以进一步细分访问权限,但只能对refs/heads/qa/开始的分支有效.

4、Push

这类分支控制用户如何上传提交到Gerrit. 根据命名空间赋予的Push权限, 可以允许绕过代码审查直接推送到分支, 也可以允许创建新的change进行代码审查.

5、Direct Push
在Direct Push权限下,任何已经存在的分支都接收fast-forward提交,创建新的分支需要Create Reference权限. 删除已经存在的分支会被拒绝,因为在这个最安全的模式下, 提交不会被丢弃.

6、Force选项

允许分支被删除. 由于force push实际上删除分支后会创建这个分支,但是这是个原子操作并且会被记录,也允许force push更新分支. 带有force选项会导致项目历史中的提交被丢弃.
force选项对只想使用Gerrit访问权限功能而不需要代码审查的项目有效, 对于需要进行代码审查的项目不应该分配这个权限.

另外规则如下:

 

posted @ 2021-06-24 14:09  咸菜白饭  阅读(1424)  评论(0)    收藏  举报