多个存储库的相同权限

时间:2017-06-11 06:31:28

标签: gitolite

我有2个git repos,其权限与此类似:

repo    myrepo
    RW+     = admin
    RW user1$       = user1
    RW user2$       = user2
    RW user3$       = user3
    RW user4$       = user4

用户数量相当高(目前约为100)并且还在增长。为了避免维护两个列表的权限,我想知道repos之间是否存在某种继承或者是否在用户之间进行循环 可能(我试图搜索http://gitolite.com/gitolite/#documentation和stackoverflow)

是否可以执行类似配置repo2具有与repo1相同的权限和/或在循环中执行每个用户/分支的权限?

2 个答案:

答案 0 :(得分:2)

至少,要考虑的第一件事是用户组的概念:您可以在两个repo中使用一个组,并更新该组的用户列表一次。

请参阅group definition

@developers     =   user1 user2 user3

repo    myrepo
    RW+     = admin
    RW      = @developer

repo    myrepo2
    RW+     = admin
    RW      = @developer

之后,要真正扩展,您可以定义该组,以便从user referential like LDAP自动获取其内容。

GROUPLIST_PGM           =>  '/home/git/bin/ldap-query-groups',

您将不再需要修改gitolite-admin回购。

  

我需要的是组中的每个人都有自己的分支(分支名称==用户名)。

这称为"personal" branches in Gitolite

  

“个人”分支机构非常适合开发人员需要共享工作但不能直接相互吸引的环境(通常是由于网络或身份验证相关的原因,这两者在公司设置中都很常见)。

     

个人分支存在于自己的命名空间中。语法是:

RW+ personal/USER/  =   @userlist
  

其中“personal”可以是您喜欢的任何内容(但不能为空),并且“/USER/”部分是必要的(包括两个斜杠)。

     

用户“alice”(如果她在用户列表中)可以推送personal/alice/内的任何分支(即,她可以推送personal/alice/foopersonal/alice/bar,但不是personal/alice)。

答案 1 :(得分:0)

只需添加@VonC的优秀答案,您也可以将您的回购分组。

@developers     =   user1 user2 user3
@cust1repos     =   myrepo myrepo2

repo    @cust1repos
    RW+     = admin
    RW      = @developer

这基本上是这里的第一个例子http://gitolite.com/gitolite/conf/