11

我在这里真的很茫然。我已经阅读了很多示例,并尝试了所有示例。最基本的工作正常,但每当我尝试转向更复杂的东西时,一切都会崩溃(即使我直接复制示例)。此外,作为记录,我使用的是 gitolite 版本 3,如服务器垃圾邮件所示:

    this is gitolite@ubuntuserver running gitolite3 v3.1-2-g3eefc06 on git 1.7.9.5         

所有这一切都说明我想要完成的是(我认为)相对简单。我有一群初级开发人员 [@scrubs],我只希望他们创建和提交新分支,并且能够读取/拉取 master。这样我就可以在合并之前查看他们的代码。

我有一群高级开发人员 [@vets] 我想自由支配。

我的配置文件如下:

     @scrubs         = al ted matthew
     @vets           = kevin will guy

     @offlimitbranches = master$

     repo    gitolite-admin
             RW+     =   @vets matthew

     repo    dawebsite
             RW+                     =   @vets
             -   @offlimitbranches   =   @scrubs
             RW+                     =   @scrubs
             R   @offlimitbranches   =   @scrubs
             R                       =   daemon
             option deny-rules = 1

     dawebsite "Owner"               = "This is THE site"

在我添加之前,我注意到否认根本没有任何作用:

    option deny-rules = 1

我想我可能在 20 个例子中找到了其中一个(有点咆哮原谅挫败感。

有了这个当前的设置,兽医可以按预期做任何事情。

Scrubs 既不能拉动或推向主分支(我认为这是因为它抓住了它可能匹配的第一条规则?) 磨擦也不能拉动或推向任何非主分支,也不能推新创建的分支。每次尝试都会返回相同的消息“FATAL: [R/W] any dawebsite matthew DENIED by refs/heads/master$”

我尝试使用 master、master$、@offlimitbranches 甚至 refs/heads/master 对分支 ref 无济于事。

如果有人可以帮助我对此有所了解,我将不胜感激。

更新**

玩弄我注意到的东西,如果我从磨砂组中删除马修并尝试直接操纵他

    -       master$         =   matthew
    RW+                     =   matthew

如果他搬到一个新的分支并尝试了以下操作:(感谢 VonC 对日志的提醒)

git pull origin newBranch
git push origin newBranch

每个返回一个错误

拉:

ARGV=matthew    SOC=git-upload-pack 'dawebsite.git'     FROM=172.24.1.198
access(dawebsite, matthew, R, 'any'),-> R any dawebsite matthew DENIED by refs/heads/master$
trigger,Writable,access_1,ACCESS_1,dawebsite,matthew,R,any,R any dawebsite,matthew DENIED by refs/heads/master$
R any dawebsite matthew DENIED by refs/heads/master$<<newline>>(or you mis-spelled the reponame)

推:

ARGV=matthew    SOC=git-receive-pack 'dawebsite.git'    FROM=172.24.1.198
access(dawebsite, matthew, W, 'any'),-> W any medehrdev matthew DENIED by refs/heads/master$
trigger,Writable,access_1,ACCESS_1,dawebsite,matthew,W,any,W any dawebsite matthew DENIED by refs/heads/master$
W any dawebsite matthew DENIED by refs/heads/master$<<newline>>(or you mis-spelled the reponame)

似乎我所有的分支都与 ref master$ 匹配,是因为它们都是从 master 产生的吗?

4

2 回答 2

14

我的配置,现在正在工作:

@gatekeepers = ustimenko
@developers  = ustimenko user1 user2
@deployers   = puppet

@project     = repo1
@project     = cakephp

repo @project
    RW+                 = @gatekeepers  
    R   master develop  = @developers
    -   master develop  = @developers
    RW+                 = @developers
    R                   = @deployers

  1. 看门人具有完全访问权限。
  2. 开发人员可以阅读 master 并开发分支,然后他们拒绝那里的其他操作。
  3. 开发人员可以做所有其他事情。
  4. 部署者可以阅读所有内容。
于 2012-11-23T15:39:02.710 回答
0

嗯,我查看了文档。并在这里尝试过。

@anything用于一组用户或其他组。你在那里尝试的不正确。您不能使用“@”运算符作为变量符号。文件

repo    dawebsite
    RW+                 =   @vets
    -   branch1         =   @scrubs
    RW+                 =   @scrubs
    R   branch1         =   @scrubs
    R                   =   daemon
    option deny-rules = 1

Gitolite 权限

于 2012-10-19T19:11:57.123 回答