# example conf file for gitolite # overall syntax: # - everything in this is space-separated; no commas, semicolons, etc # - comments in the normal shell-ish style; no surprises there # - there are no continuation lines of any kind # objectives, over and above gitosis: # - simpler syntax # - no gitweb/daemon control # - allows ff/non-ff control # - allows branch level control # ---------------------------------------------------------------------------- # USERS and GROUPS # syntax: # @groupname = username [...] # usernames and groupnames should be as simple as possible # too many users in one group? just add more such lines # (they accumulate, like squid ACLs) @cust_A = cust1 cust2 @cust_A = cust99 # you can nest groups, but not recursively of course! @interns = indy james @staff = bob @interns @staff = me alice @secret_staff = bruce whitfield martin # ---------------------------------------------------------------------------- # REPOS, REFS, and PERMISSIONS # syntax: # repo [one or more reponames] # (R|RW|RW+) [zero or more refnames] = [one or more users] # notes: # - RW+ means non-ff push is allowed # - you can't write just "W" or "+"; it has to be R, or RW, or RW+ # - if no ref name appears, the rule applies to all refs in that repo # - ref names are perl regex patterns # - prefixed by "refs/heads/" if it doesn't start with "refs/" # (i.e., tags have to be explicitly named as refs/tags/pattern) # - the list of users can inlude any group name defined earlier # - "@all" is a special, predefined, groupname # anyone can play in the sandbox, including making non-fastforward commits # (that's what the "+" means) repo sandbox RW+ = @all # my repo and alice's repo have the same memberships and access, so we just # put them both in the same stanza repo myrepo alicerepo RW+ = me alice R = bob eve # this repo is visible to customers from company A but they can't write to it repo cust_A_repo R = @cust_A RW = @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 refs/tags/ = @secret_staff RW tmp/.* = @secret_staff R = @secret_staff