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中的用户,可以推送到任何引用,但是不能创建引用,不能删除引用,也不能强制推送。