diff --git a/example.conf b/example.conf new file mode 100644 index 0000000..f72f470 --- /dev/null +++ b/example.conf @@ -0,0 +1,61 @@ +# example conf file for gitosis-lite + +# objectives, over and above gitosis: +# - simpler syntax +# - no gitweb/daemon control +# - allows ff/non-ff control +# - allows branch level control + +# ---------------------------------------------------------------------------- +# user groups; syntax: +# @groupname = username [...] +# too many users? just add more such lines +# (they accumulate, like squid ACLs) + +@customers = cust1 cust2 +@customers = cust99 +@staff = me alice +@staff = bob +@secret_staff = bruce whitfield martin + +# ---------------------------------------------------------------------------- +# each section pertains to one or more repo(s); syntax: +# repo reponame [...] +# (R|RW|RW+) [list of ref names] = [list of users] + +# - RW+ means non-ff push is allowed +# - if no ref name exists, the rule applies to all refs +# - ref names are perl regex patterns +# - suffixed by "$" +# - prefixed by "refs/heads/" if it doesn't start with "refs/" +# (i.e., tags have to be explicitly named as refs/tags/pattern) + +# - the order of entries matters: the first ref+action line (for the repo) +# that matches is what counts. If the user is listed, the action is +# allowed, otherwise it is rejected. + +# - list of users can use any group name defined earlier +# - "@all" is a special, predefined, groupname + +# anyone can play in the sandbox +repo sandbox + RW+ = @all + +# my repo and alice's repo have the same memberships and access, so we just +# club them +repo myrepo alicerepo + RW+ = me, alice + R = bob, eve + +repo custrepo + RW = @customers + R = @staff + +# idea for the tags syntax shamelessly copied from git.git +# Documentation/howto/update-hook-example.txt :) +repo secret + RW+ pu = bruce + RW master next = bruce + RW refs/tags/v[0-9].* = bruce + RW tmp/.* = @secret_staff + R = @secret_staff