30.3 Gitolite授权详解

30.3.1 授权文件的基本语法

下面看一个不那么简单的授权文件。为方便描述添加了行号。


1 @admin=jiangxin wangsheng

2

3 repo gitolite-admin

4 RW+=jiangxin

5

6 repo ossxp/.+

7 C=@admin

8 RW=@all

9

10 repo testing

11 RW+=@admin

12 RW master=junio

13 RW+pu=junio

14 RW cogito$=pasky

15 RW bw/=linus

16 -=somebody

17 RW tmp/=@all

18 RW refs/tags/v[0-9]=junio


在上面的示例中,演示了很多授权指令:

第1行,定义了用户组@admin,包含两个用户jiangxin和wangsheng。

第3~4行,定义了版本库gitolite-admin。并指定只有用户jiangxin才能够访问,并拥有读(R)写(W)和强制更新(+)的权限。

第6行,通过正则表达式定义了一组版本库,即在ossxp/目录下的所有版本库。

第7行,用户组@admin中的用户,可以在ossxp/目录下创建版本库。创建版本库的用户,具有对版本库操作的所有权限。

第8行,所有用户都可以读写ossxp目录下的版本库,但不能强制更新。

第10行开始,定义的testing版本库授权使用了引用授权语法。

第11行,用户组@admin对所有的分支和里程碑拥有读写、重置、添加和删除的授权。

第12行,用户junio可以读写master分支。(还包括名字以master开头的其他分支,如果有的话。)

第13行,用户junio可以读写、强制更新、创建及删除pu开头的分支。

第14行,用户pasky可以读写cogito分支。(仅此分支,精确匹配)。