Gerrit权限配置

来自个人维基
跳转至: 导航搜索

这里讲的主要是在 gerrit安装完成后,根据各公司实际人员情况,进行人员群组和各仓库权限的配置内容。

目录

一、配置规划

大致的想法如下:

1 将公司人员,根据各自负责的内容配置为对应的仓库 owner,如 sp_owner_camera, sp_owner_video...

2 在 Privilege目录下创建一些空仓库,专用于权限配置,后续项目对应的仓库从这里继承,如 Privilege/camera, Privilege/video...

——这里把 Privilege/camera的 Code-Review +2权限配置为 sp_owner_camera;对应的 Privilege/video的 +2权限配置为 sp_owner_video
  • 补充:这里可以不用显式地为 sp_owner_xxx配置 reviewer +2的权限,只需要在创建 Privilege/xxx项目时指定 owner群组即可:
ssh gerrit gerrit create-project -o sp_owner_xxx -p All-Projects --permissions-only Privilege/test_xxx

3 当创建一个新项目时,创建新仓时,camera直接以 Privilege/camera为父仓库,权限可直接继承下来

4 后续需要调整仓库权限时,直接更改 Privilege/下的权限仓即可;需要更改owner时则直接更改对应 ower组群

二、All-Project的权限配置

1 为项目导入群组创建权限

(1)Global Capabilities 中增加 sp_importers 创建项目和群组的权限:

[capability]
        streamEvents = group Non-Interactive Users
+       createProject = group sp_importers

(2)refs/*增加 sp_importers的创建权限:

 [access "refs/*"]
        read = group Administrators
        read = group Anonymous Users
+       create = group sp_importers

2 refs/meta/config增加注册用户的读权限,使 gitweb在其他用户时使用时不会出现not found错误

[access "refs/meta/config"]
	exclusiveGroupPermissions = read
	read = group Administrators
	read = group Project Owners
+	read = group Registered Users

3 refs/heads/*增加注册用户的submit权限,不然即使 Review +2,也无法合并到主线

这里也不用担心+1的其他用户直接 submit,因为只有 Review+2后才能提交上去(一旦review +2,这个提交动作可以由其他用户完成)

[access "refs/heads/*"]
	create = group Administrators
	create = group Project Owners
	forgeAuthor = group Registered Users
	forgeCommitter = group Administrators
	forgeCommitter = group Project Owners
	push = group Administrators
	push = group Project Owners
	label-Code-Review = -2..+2 group Administrators
	label-Code-Review = -2..+2 group Project Owners
	label-Code-Review = -1..+1 group Registered Users
	submit = group Administrators
	submit = group Project Owners
+	submit = group Registered Users