This is actually a pretty big deal, and I am seriously starting wonder if calling this "gito*lite*" is justified anymore. Anyway, in for a penny, in for a pound... This patch implements a generic way to allow access control for external commands, as long as they are invoked via ssh and present a server-side command that contains enough information to make an access control decision. The first (and only, so far) such command implemented is rsync. Please read the changes in this commit (at least the ones in conf/ and doc/) carefully.
125 lines
4.1 KiB
Plaintext
125 lines
4.1 KiB
Plaintext
# paths and configuration variables for gitolite
|
|
|
|
# please read comments before editing
|
|
|
|
# this file is meant to be pulled into a perl program using "do" or "require".
|
|
|
|
# You do NOT need to know perl to edit the paths; it should be fairly
|
|
# self-explanatory and easy to maintain perl syntax :-)
|
|
|
|
# --------------------------------------
|
|
|
|
# this is where the repos go. If you provide a relative path (not starting
|
|
# with "/"), it's relative to your $HOME. You may want to put in something
|
|
# like "/bigdisk" or whatever if your $HOME is too small for the repos, for
|
|
# example
|
|
|
|
$REPO_BASE="repositories";
|
|
|
|
# the default umask for repositories is 0077; change this if you run stuff
|
|
# like gitweb and find it can't read the repos. Please note the syntax; the
|
|
# leading 0 is required
|
|
|
|
$REPO_UMASK = 0077; # gets you 'rwx------'
|
|
# $REPO_UMASK = 0027; # gets you 'rwxr-x---'
|
|
# $REPO_UMASK = 0022; # gets you 'rwxr-xr-x'
|
|
|
|
# part of the setup of gitweb is a variable called $projects_list (please see
|
|
# gitweb documentation for more on this). Set this to the same value:
|
|
|
|
$PROJECTS_LIST = $ENV{HOME} . "/projects.list";
|
|
|
|
# --------------------------------------
|
|
|
|
# I see no reason anyone may want to change the gitolite admin directory, but
|
|
# feel free to do so. However, please note that it *must* be an *absolute*
|
|
# path (i.e., starting with a "/" character)
|
|
|
|
# gitolite admin directory, files, etc
|
|
|
|
$GL_ADMINDIR=$ENV{HOME} . "/.gitolite";
|
|
|
|
# --------------------------------------
|
|
|
|
# templates for location of the log files and format of their names
|
|
|
|
# I prefer this template (note the %y and %m placeholders)
|
|
# it produces files like `~/.gitolite/logs/gitolite-2009-09.log`
|
|
|
|
$GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m.log";
|
|
|
|
# other choices are below, or you can make your own -- but PLEASE MAKE SURE
|
|
# the directory exists and is writable; gitolite won't do that for you (unless
|
|
# it is the default, which is "$GL_ADMINDIR/logs")
|
|
|
|
# $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m-%d.log";
|
|
# $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y.log";
|
|
|
|
# --------------------------------------
|
|
|
|
# Please DO NOT change these three paths
|
|
|
|
$GL_CONF="$GL_ADMINDIR/conf/gitolite.conf";
|
|
$GL_KEYDIR="$GL_ADMINDIR/keydir";
|
|
$GL_CONF_COMPILED="$GL_ADMINDIR/conf/gitolite.conf-compiled.pm";
|
|
|
|
# --------------------------------------
|
|
|
|
# personal branch prefix; leave it as is (empty) if you don't want to use the
|
|
# feature (see the "developer-specific branches" section in the "faq, tips,
|
|
# etc" document)
|
|
|
|
$PERSONAL="";
|
|
|
|
# uncomment one of these if you do want it. If you change it, remember it
|
|
# MUST start with "refs/"
|
|
|
|
# I recommend this:
|
|
# $PERSONAL="refs/personal";
|
|
|
|
# if you want something more visible/noisy, use this:
|
|
# $PERSONAL="refs/heads/personal";
|
|
|
|
# NOTE: whatever value you choose, for security reasons it is better to make
|
|
# it fully qualified -- that is, starting with "refs/"
|
|
|
|
# --------------------------------------
|
|
|
|
# if git on your server is on a standard path (that is
|
|
# ssh git@server git --version
|
|
# works), leave this setting as is. Otherwise, choose one of the
|
|
# alternatives, or write your own
|
|
|
|
$GIT_PATH="";
|
|
# $GIT_PATH="/opt/bin/";
|
|
|
|
# --------------------------------------
|
|
|
|
# if you want to give shell access to any gitolite user(s), name them here.
|
|
# Please see doc/6-ssh-troubleshooting.mkd for details on how this works.
|
|
|
|
# Do not add people to this list indiscriminately. AUDITABILITY OF ACCESS
|
|
# CONTROL CHANGES (AND OF REPO ACCESSES) WILL BE COMPROMISED IF ADMINS CAN
|
|
# FIDDLE WITH THE ACTUAL (PLAIN TEXT) LOG FILES THAT GITOLITE KEEPS, WHICH
|
|
# THEY CAN EASILY DO IF THEY HAVE A SHELL.
|
|
|
|
# syntax: space separated list of gitolite usernames in *one* string variable.
|
|
# $SHELL_USERS = "alice bob";
|
|
|
|
# --------------------------------------
|
|
|
|
# EXTERNAL COMMAND HELPER -- RSYNC
|
|
#
|
|
# base path of all the files that are accessible via rsync. Must be an
|
|
# absolute path. Leave it undefined or set to the empty string to disable the
|
|
# rsync helper.
|
|
$RSYNC_BASE = "";
|
|
# $RSYNC_BASE = "/home/git/up-down";
|
|
# $RSYNC_BASE = "/tmp/up-down";
|
|
|
|
# --------------------------------------
|
|
# per perl rules, this should be the last line in such a file:
|
|
1;
|
|
|
|
# vim: set syn=perl:
|