30.4.5 对引用的授权:扩展模式

扩展模式的引用授权,指的是该版本库的授权指令出现了下列授权关键字中的一个或多个:RWC、RWD、RWCD、RW+C、RW+D、RW+CD。则Gitolite对授权采用新的判定方式。

非快进式推送必须拥有+的授权。

创建引用必须拥有C的授权。

删除引用必须拥有D的授权。

即引用的创建和删除使用了单独的授权关键字,和写权限和强制推送权限分开。下面是一个采用扩展授权关键字的授权文件:


repo test/repo2

RW+C=@administrators

RW+=@dev

RW=@test

repo test/repo3

RW+CD=@administrators

RW+C=@dev

RW

=@test


通过上面的配置文件,对于版本库test/repo2.git具有如下的授权:

用户组@administrators中的用户,具有创建和删除引用的权限,并且能够强制推送。

用户组@dev中的用户,不能创建引用,但可以删除引用,并且可以强制推送。

用户组@test中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。

通过上面的配置文件,对于版本库test/repo3.git具有如下的授权:

用户组@administrators中的用户,具有创建和删除引用的权限,并且能够强制推送。

用户组@dev中的用户,可以创建引用,并能够强制推送,但不能删除引用。

用户组@test中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。