Android下的配置管理之道之gerrit权限管理
Android下的配置管理之道之gerrit权限管理
Gerrit Code Review - Access Controls
在Gerrit中访问控制是基于组的。每个用户帐户都是一个或多个组的成员,并授予这些组的访问权和特权。访问权限不能授予单个用户。
gerrit中的组
System Groups 系统组
1
2
3
4
5
6
7
8
9
10
11
12
13Anonymous Users 匿名用户组.所有的用户都自动属于这个组的。没有登陆的用户会属于这个组。
这个组最好只设置read读的权限,其他权限不要设置!
例如,一般的会给repo这个仓库设置个允许匿名访问。
Change Owner 某个提交的拥有者的一个群组。一般不使用。
Project Owners 项目,也就是某个仓库的拥有者的一个群组。一般的不使用。
Registered Users 所有的注册用户的组,这个会用到一些。
一般的可以给这个组设置个Code-Review -1..+1的权限。Predefined Groups预定义的群组
1 | Administrators 管理员群组,权限最大的。 |
- Account Groups 自己新建的群组。
- LDAP Groups 这个是绑定了ldap服务器才会使用到的群组。这个也算是一种Account Groups 。
在安装好gerrit。我们会看到2个默认的仓库,或者叫project。
第一个,也是非常重要的一个是:All Projects
这个是管理权限的仓库,gerrit是把权限的相关设置存放到一个git仓库下的,这个仓库就是叫All-projects。
当然自己也可以定义新建权限的仓库。
这个All-projects是所有权限的父仓库。其他的权限仓库都会继承这个。
例如上面图片中的test仓库,他的权限就是继承自All-Projects的。
当然每个仓库也会有自己独立的权限配置。
1 | 图片中的这一段就是这个仓库自己设置的权限。 |
这个仓库首先有个权限是继承All-Projects,然后自己又有一段自己的权限配置。
下面我们来看看gerrit中一些特殊的和魔术references(Special and magic references)
一般的这个refs在git中也是有使用的,在git中这个refs有2个,一个是给tag用的,一个是给branch用的。
1 | refs/heads/* |
一般说来refs/* ,就是这个refs命名空间下面的所有的都是有效的references。
在gerrit中又增加了其他的特殊的references。
1 | refs/changes/* |
1 | refs/for/<branch ref> |
下面贴出来马哥的配置权限的。
在这个总的all-projects里面配置的都是管理员相关的权限设置。
然后,all-android继承all-projects,all-android仓库是马哥自己创建的一个权限仓库。
这个里面就设置了refs/for/* 下面的权限,一般的就是所有的人都能push就行。
然后,这个是all-android仓库里面设置的refs/heads/*下面的权限,这个比较重要。+1+2,submit等权限都是这个下面设置的。
最后一个是all-bsp仓库,这个仓库继承all-android,all-bsp仓库也是是马哥自己创建的一个权限仓库。这个里面设置了+1+2,submit等权限。
总的说来,对于android项目的几百个仓库,有的仓库是属于bsp组的。有的属于modem组的,等等。
这样就按照模块一一设置权限。一般的主要就是设置这个submit的权限。
1 | submit-type 选项说明 : (详见Wiki) |
Access Categories
1 |
|