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分支。(仅此分支,精确匹配)。