我希望客户能够锁定他们拥有写入控制权的任何分支(或至少存储库)。gitolite writable off
似乎就是这么做的。但我无法掌握权限。
$ ssh [email protected] writable testing off
FATAL: you are not authorized
普通用户如何获得授权来执行此操作?客户端已经拥有其公钥gitolite-admin/keydir
并且具有 RW+ 权限testing
。
答案1
因此,正如一位同事常说的那样,源代码是最好的文档。
gitolite/src/commands/writable:
_die "you are not authorized" if $ENV{GL_USER} and not( owns($repo) or is_admin() or ( can_write($repo) and $op eq 'status' ) );
因此,为了锁定对存储库的写入,需要成为管理员或拥有该存储库。拥有回购意味着什么?
src/lib/Gitolite/Easy.pm:
return ( creator($r) eq $user or $rc{OWNER_ROLENAME} and in_role( $rc{OWNER_ROLENAME}, $r ) );
因此,我们必须要么创建了存储库(不可行),要么被列为gitolite-admin/conf/gitolite.conf
所有者。
- 我们如何注册全部用户作为所有者?
- 这会造成一些安全漏洞吗?
这就是我现在的情况。$ find gitolite | xargs grep OWNER_ROLENAME
返回该字符串从未在另一个文件中提及,而且我不会说珍珠:(
此外,/home/git/.gitolite.rc
仅列出了两个角色READERS
和WRITERS
。