gitolite permissoins with branches and folders

后端 未结 2 369
盖世英雄少女心
盖世英雄少女心 2021-01-16 04:24

In gitolite I want the @developers to be able to push to any branch except for master.
I want user1 to be able to push to any bran

相关标签:
2条回答
  • 2021-01-16 05:03

    This should address both:

    repo arepo
      RW          = @developer
      -  master$  = @developer
    
      RW                     = user1
      - master and VREF/NAME/adirectory = user1
    

    The access rules and refex pages explain how /refs/head/master branch is denied for push for @developer.

    The Virtual Refs 'NAME' allows you to deny push for a given directory or file.

    The Drew Lesueur adds in the comments:

      - master VREF/NAME/adirectory = user1
    

    It seems to not be doing an "and" condition but an "or" for us - master VREF/NAME/adirectory = user1
    I ended up writing a custom VREF script for what I needed

    I confirm that, in this case, only a custom VREF can match the OP's requirements, until gitolite 3.5 (and the introduction of 'and'): see sitaram (creator of gitolite)'s answer.

    0 讨论(0)
  • 2021-01-16 05:17

    As of v3.5, you can do this:

    (1) add this line

    'refex-expr',
    

    somewhere inside the ENABLE hash in the .gitolite.rc file.

    (2) use rules like this:

    repo r1
        RW+ master                          =   user
        RW+                                 =   user
        RW+ VREF/NAME/Makefile              =   user
        -   master and VREF/NAME/Makefile   =   user
    

    Documentation (including warnings!) is inside src/VREF/refex-expr. There are some other neat examples in there.

    Please note that I do not follow SO/SE/etc.; IMO the gitolite mailing list is the correct place for questions about gitolite.

    However, someone pointed this one out to me, and since it referenced a very recent feature I thought I'd chip in.

    -- sitaram

    0 讨论(0)
提交回复
热议问题