Blame files/gitolite.rc

Pierre-Yves Chibon 5072a4
# paths and configuration variables for gitolite
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# please read comments before editing
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# this file is meant to be pulled into a perl program using "do" or "require".
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# You do NOT need to know perl to edit the paths; it should be fairly
Pierre-Yves Chibon 5072a4
# self-explanatory and easy to maintain perl syntax :-)
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# Do not uncomment these values unless you know what you're doing
Pierre-Yves Chibon 5072a4
# $GL_PACKAGE_CONF = "";
Pierre-Yves Chibon 5072a4
# $GL_PACKAGE_HOOKS = "";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# this is where the repos go.  If you provide a relative path (not starting
Pierre-Yves Chibon 5072a4
# with "/"), it's relative to your $HOME.  You may want to put in something
Pierre-Yves Chibon 5072a4
# like "/bigdisk" or whatever if your $HOME is too small for the repos, for
Pierre-Yves Chibon 5072a4
# example
Pierre-Yves Chibon 5072a4
Neal Gompa 9c34c4
$REPO_BASE="/path/to/git/repositories/";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# the default umask for repositories is 0077; change this if you run stuff
Pierre-Yves Chibon 5072a4
# like gitweb and find it can't read the repos.  Please note the syntax;  the
Pierre-Yves Chibon 5072a4
# leading 0 is required
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$REPO_UMASK = 0002;
Pierre-Yves Chibon 5072a4
# $REPO_UMASK = 0027;       # gets you 'rwxr-x---'
Pierre-Yves Chibon 5072a4
# $REPO_UMASK = 0022;       # gets you 'rwxr-xr-x'
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# part of the setup of gitweb is a variable called $projects_list (please see
Pierre-Yves Chibon 5072a4
# gitweb documentation for more on this).  Set this to the same value:
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# I see no reason anyone may want to change the gitolite admin directory, but
Pierre-Yves Chibon 5072a4
# feel free to do so.  However, please note that it *must* be an *absolute*
Pierre-Yves Chibon 5072a4
# path (i.e., starting with a "/" character)
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# gitolite admin directory, files, etc
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_ADMINDIR="/etc/gitolite";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# templates for location of the log files and format of their names
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# I prefer this template (note the %y and %m placeholders)
Pierre-Yves Chibon 5072a4
# it produces files like `~/.gitolite/logs/gitolite-2009-09.log`
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_LOGT="/var/log/gitolite/gitolite-%y-%m.log";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# other choices are below, or you can make your own -- but PLEASE MAKE SURE
Pierre-Yves Chibon 5072a4
# the directory exists and is writable; gitolite won't do that for you (unless
Pierre-Yves Chibon 5072a4
# it is the default, which is "$GL_ADMINDIR/logs")
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m-%d.log";
Pierre-Yves Chibon 5072a4
# $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y.log";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# Please DO NOT change these three paths
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_CONF="$GL_ADMINDIR/conf/gitolite.conf";
Pierre-Yves Chibon 5072a4
$GL_KEYDIR="$GL_ADMINDIR/keydir";
Pierre-Yves Chibon 5072a4
$GL_CONF_COMPILED="$GL_ADMINDIR/conf/gitolite.conf-compiled.pm";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# if git on your server is on a standard path (that is
Pierre-Yves Chibon 5072a4
#       ssh git@server git --version
Pierre-Yves Chibon 5072a4
# works), leave this setting as is.  Otherwise, choose one of the
Pierre-Yves Chibon 5072a4
# alternatives, or write your own
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GIT_PATH="";
Pierre-Yves Chibon 5072a4
# $GIT_PATH="/opt/bin/";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# ----------------------------------------------------------------------
Pierre-Yves Chibon 5072a4
#                   BIG CONFIG SETTINGS
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# Please read doc/big-config.mkd for details
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_BIG_CONFIG = 1;
Pierre-Yves Chibon 5072a4
$GL_NO_DAEMON_NO_GITWEB = 1;
Pierre-Yves Chibon 5072a4
$GL_NO_CREATE_REPOS = 1;
Pierre-Yves Chibon 5072a4
$GL_NO_SETUP_AUTHKEYS = 1;
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# ----------------------------------------------------------------------
Pierre-Yves Chibon 5072a4
#                   SECURITY SENSITIVE SETTINGS
Pierre-Yves Chibon 5072a4
#
Pierre-Yves Chibon 5072a4
#       Settings below this point may have security implications.  That
Pierre-Yves Chibon 5072a4
#       usually means that I have not thought hard enough about all the
Pierre-Yves Chibon 5072a4
#       possible ways to crack security if these settings are enabled.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
#       Please see details on each setting for specifics, if any.
Pierre-Yves Chibon 5072a4
# ----------------------------------------------------------------------
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# ALLOW REPO ADMIN TO SET GITCONFIG KEYS
Pierre-Yves Chibon 5072a4
#
Pierre-Yves Chibon 5072a4
# Gitolite allows you to set git repo options using the "config" keyword; see
Pierre-Yves Chibon 5072a4
# conf/example.conf for details and syntax.
Pierre-Yves Chibon 5072a4
#
Pierre-Yves Chibon 5072a4
# However, if you are in an installation where the repo admin does not (and
Pierre-Yves Chibon 5072a4
# should not) have shell access to the server, then allowing him to set
Pierre-Yves Chibon 5072a4
# arbitrary repo config options *may* be a security risk -- some config
Pierre-Yves Chibon 5072a4
# settings may allow executing arbitrary commands.
Pierre-Yves Chibon 5072a4
#
Pierre-Yves Chibon 5072a4
# You have 3 choices.  By default $GL_GITCONFIG_KEYS is left empty, which
Pierre-Yves Chibon 5072a4
# completely disables this feature (meaning you cannot set git configs from
Pierre-Yves Chibon 5072a4
# the repo config).
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_GITCONFIG_KEYS = "";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# The second choice is to give it a space separated list of settings you
Pierre-Yves Chibon 5072a4
# consider safe.  (These are actually treated as a set of regular expression
Pierre-Yves Chibon 5072a4
# patterns, and any one of them must match).  For example:
Pierre-Yves Chibon 5072a4
# $GL_GITCONFIG_KEYS = "core\.logAllRefUpdates core\..*compression";
Pierre-Yves Chibon 5072a4
# allows repo admins to set one of those 3 config keys (yes, that second
Pierre-Yves Chibon 5072a4
# pattern matches two settings from "man git-config", if you look)
Pierre-Yves Chibon 5072a4
#
Pierre-Yves Chibon 5072a4
# The third choice (which you may have guessed already if you're familiar with
Pierre-Yves Chibon 5072a4
# regular expressions) is to allow anything and everything:
Pierre-Yves Chibon 5072a4
# $GL_GITCONFIG_KEYS = ".*";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# EXTERNAL COMMAND HELPER -- HTPASSWD
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# security note: runs an external command (htpasswd) with specific arguments,
Pierre-Yves Chibon 5072a4
# including a user-chosen "password".
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# if you want to enable the "htpasswd" command, give this the absolute path to
Pierre-Yves Chibon 5072a4
# whatever file apache (etc) expect to find the passwords in.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$HTPASSWD_FILE = "";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# Look in doc/3 ("easier to link gitweb authorisation with gitolite" section)
Pierre-Yves Chibon 5072a4
# for more details on using this feature.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# EXTERNAL COMMAND HELPER -- RSYNC
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# security note: runs an external command (rsync) with specific arguments, all
Pierre-Yves Chibon 5072a4
# presumably filled in correctly by the client-side rsync.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# base path of all the files that are accessible via rsync.  Must be an
Pierre-Yves Chibon 5072a4
# absolute path.  Leave it undefined or set to the empty string to disable the
Pierre-Yves Chibon 5072a4
# rsync helper.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$RSYNC_BASE = "";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# $RSYNC_BASE = "/home/git/up-down";
Pierre-Yves Chibon 5072a4
# $RSYNC_BASE = "/tmp/up-down";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# EXTERNAL COMMAND HELPER -- SVNSERVE
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# security note: runs an external command (svnserve) with specific arguments,
Pierre-Yves Chibon 5072a4
# as specified below. %u is substituted with the username.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# This setting allows launching svnserve when requested by the ssh client.
Pierre-Yves Chibon 5072a4
# This allows using the same SSH setup (hostname/username/public key) for both
Pierre-Yves Chibon 5072a4
# SVN and git access. Leave it undefined or set to the empty string to disable
Pierre-Yves Chibon 5072a4
# svnserve access.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$SVNSERVE = "";
Pierre-Yves Chibon 5072a4
# $SVNSERVE = "/usr/bin/svnserve -r /var/svn/ -t --tunnel-user=%u";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# ALLOW REPO CONFIG TO USE WILDCARDS
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# security note: this used to in a separate "wildrepos" branch.  You can
Pierre-Yves Chibon 5072a4
# create repositories based on wild cards, give "ownership" to the specific
Pierre-Yves Chibon 5072a4
# user who created it, allow him/her to hand out R and RW permissions to other
Pierre-Yves Chibon 5072a4
# users to collaborate, etc.  This is powerful stuff, and I've made it as
Pierre-Yves Chibon 5072a4
# secure as I can, but it hasn't had the kind of rigorous line-by-line
Pierre-Yves Chibon 5072a4
# analysis that the old "master" branch had.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# This has now been rolled into master, with all the functionality gated by
Pierre-Yves Chibon 5072a4
# this variable.  Set this to 1 if you want to enable the wildrepos features.
Pierre-Yves Chibon 5072a4
# Please see doc/4-wildcard-repositories.mkd for details.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
$GL_WILDREPOS = 0;
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# DEFAULT WILDCARD PERMISSIONS
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# If set, this value will be used as the default user-level permission rule of
Pierre-Yves Chibon 5072a4
# new wildcard repositories. The user can change this value with the setperms command
Pierre-Yves Chibon 5072a4
# as desired after repository creation; it is only a default. Note that @all can be
Pierre-Yves Chibon 5072a4
# used here but is special; no other groups can be used in user-level permissions.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# $GL_WILDREPOS_DEFPERMS = 'R = @all';
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# HOOK CHAINING
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# by default, the update hook in every repo chains to "update.secondary".
Pierre-Yves Chibon 5072a4
# Similarly, the post-update hook in the admin repo chains to
Pierre-Yves Chibon 5072a4
# "post-update.secondary".  If you're fine with the defaults, there's no need
Pierre-Yves Chibon 5072a4
# to do anything here.  However, if you want to use different names or paths,
Pierre-Yves Chibon 5072a4
# change these variables
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# $UPDATE_CHAINS_TO = "hooks/update.secondary";
Pierre-Yves Chibon 5072a4
# $ADMIN_POST_UPDATE_CHAINS_TO = "hooks/post-update.secondary";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# ADMIN DEFINED COMMANDS
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# WARNING: Use this feature only if (a) you really really know what you're
Pierre-Yves Chibon 5072a4
# doing or (b) you really don't care too much about security.  Please read
Pierre-Yves Chibon 5072a4
# doc/admin-defined-commands.mkd for details.
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# $GL_ADC_PATH = "";
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# --------------------------------------
Pierre-Yves Chibon 5072a4
# per perl rules, this should be the last line in such a file:
Pierre-Yves Chibon 5072a4
1;
Pierre-Yves Chibon 5072a4
Pierre-Yves Chibon 5072a4
# Local variables:
Pierre-Yves Chibon 5072a4
# mode: perl
Pierre-Yves Chibon 5072a4
# End:
Pierre-Yves Chibon 5072a4
# vim: set syn=perl: