From: "Christian Ruppert" <idl0r@gentoo.org> To: gentoo-commits@lists.gentoo.org Subject: [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata commit in: / Date: Tue, 15 Feb 2011 16:42:07 +0000 (UTC) [thread overview] Message-ID: <e24d0debc5565599c4eef70f6a3be602977d0f02.idl0r@gentoo> (raw) commit: e24d0debc5565599c4eef70f6a3be602977d0f02 Author: Christian Ruppert <idl0r <AT> gentoo <DOT> org> AuthorDate: Tue Feb 15 16:35:55 2011 +0000 Commit: Christian Ruppert <idl0r <AT> gentoo <DOT> org> CommitDate: Tue Feb 15 16:35:55 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gitolite-gentoo.git;a=commit;h=e24d0deb Merge commit 'refs/top-bases/t/export-key-metadata' into t/export-key-metadata Conflicts: conf/example.gitolite.rc src/gl-auth-command conf/example.conf | 3 - conf/example.gitolite.rc | 334 +++----------------- contrib/adc/get-rights-and-owner.in-perl | 41 +++ contrib/ldap/README.mkd | 18 ++ contrib/ldap/ldap-query-example.pl | 80 +++++ contrib/ldap/ldap-query-example.sh | 68 +++++ contrib/ldap/passwd | 112 +++++++ doc/CHANGELOG | 22 ++ doc/big-config.mkd | 229 ++++++++++---- doc/delegation.mkd | 2 +- doc/gitolite.rc.mkd | 332 ++++++++++++++++++++ doc/install-transcript.mkd | 2 +- doc/overkill.mkd | 8 +- doc/progit-article.mkd | 2 +- doc/ssh-troubleshooting.mkd | 2 +- doc/who-uses-it.mkd | 5 + src/gitolite.pm | 124 +++++---- src/gl-auth-command | 14 +- src/gl-compile-conf | 164 +++++++---- t/out/t01-repo-groups.1 | 2 +- t/out/t01-repo-groups.1b | 2 +- t/out/{t01-repo-groups.1b => t01-repo-groups.1bs} | 33 ++- t/out/t01-repo-groups.2 | 28 ++- t/out/t02-user-groups.1 | 2 +- t/out/t02-user-groups.1b | 2 +- t/out/{t02-user-groups.1b => t02-user-groups.1bs} | 35 +-- t/out/t02-user-groups.2 | 2 +- t/out/{t02-user-groups.2 => t02-user-groups.2bs} | 49 ++-- t/t01-repo-groups | 6 +- t/t02-user-groups | 8 +- t/t59-repo-not-on-disk | 12 +- t/test-driver.sh | 7 + 32 files changed, 1198 insertions(+), 552 deletions(-) diff --cc conf/example.gitolite.rc index 211b7cb,9ee7840..6f57994 --- a/conf/example.gitolite.rc +++ b/conf/example.gitolite.rc @@@ -61,260 -14,65 +14,73 @@@ $GL_ADMINDIR=$ENV{HOME} . "/.gitolite" $GL_CONF="$GL_ADMINDIR/conf/gitolite.conf"; $GL_KEYDIR="$GL_ADMINDIR/keydir"; $GL_CONF_COMPILED="$GL_ADMINDIR/conf/gitolite.conf-compiled.pm"; + # DO NOT CHANGE THE NEXT TWO LINES UNLESS YOU REALLY KNOW WHAT YOU'RE DOING. + # These variables are set automatically by the install method you choose. + # $GL_PACKAGE_CONF = ""; + # $GL_PACKAGE_HOOKS = ""; - # -------------------------------------- - - # 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/"; - - # -------------------------------------- - - # ---------------------------------------------------------------------- - # BIG CONFIG SETTINGS - - # Please read doc/big-config.mkd for details + # ------------------------------------------------------------------------------ + # most often used/changed variables + # ------------------------------------------------------------------------------ + $GL_WILDREPOS = 0; + $PROJECTS_LIST = $ENV{HOME} . "/projects.list"; + $REPO_UMASK = 0077; + # ------------------------------------------------------------------------------ + # variables with an efficiency impact + # ------------------------------------------------------------------------------ $GL_BIG_CONFIG = 0; $GL_NO_DAEMON_NO_GITWEB = 0; - $GL_NO_CREATE_REPOS = 0; - $GL_NO_SETUP_AUTHKEYS = 0; - - # ---------------------------------------------------------------------- - # SECURITY SENSITIVE SETTINGS - # - # Settings below this point may have security implications. That - # usually means that I have not thought hard enough about all the - # possible ways to crack security if these settings are enabled. - - # Please see details on each setting for specifics, if any. - # ---------------------------------------------------------------------- - +# Define which metadata variables shall be exported to the gitolite environment. +# Those variables can be used in hooks, e.g. for cia.vc +# A pubkey file might contain one or more of those variable. +# They can be defined by e.g:"# git-username: idl0r" +# Each '-' (dash) will be replaced by an '_' (underscore). - @GL_METADATA = ( "git-username", "git-email", "git-realname", "git-realname-ascii", "cia-vc-username" ); - @GL_METADATA_REQUIRED = ( "git-username", "git-email", "git-realname" ); - - # -------------------------------------- - # ALLOW REPO ADMIN TO SET GITCONFIG KEYS - # - # Gitolite allows you to set git repo options using the "config" keyword; see - # conf/example.conf for details and syntax. - # - # However, if you are in an installation where the repo admin does not (and - # should not) have shell access to the server, then allowing him to set - # arbitrary repo config options *may* be a security risk -- some config - # settings may allow executing arbitrary commands. - # - # You have 3 choices. By default $GL_GITCONFIG_KEYS is left empty, which - # completely disables this feature (meaning you cannot set git configs from - # the repo config). - ++#@GL_METADATA = ( "git-username", "git-email", "git-realname", "git-realname-ascii", "cia-vc-username" ); ++#@GL_METADATA_REQUIRED = ( "git-username", "git-email", "git-realname" ); ++ + # ------------------------------------------------------------------------------ + # VARIABLES WITH A SECURITY IMPACT. READ DOC WELL BEFORE CHANGING THESE. + # http://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.rc.mkd#_variables_with_a_security_impact + # ------------------------------------------------------------------------------ + # $GL_ALL_READ_ALL = 0; + $GIT_PATH=""; $GL_GITCONFIG_KEYS = ""; - - # The second choice is to give it a space separated list of settings you - # consider safe. (These are actually treated as a set of regular expression - # patterns, and any one of them must match). For example: - # $GL_GITCONFIG_KEYS = "core\.logAllRefUpdates core\..*compression"; - # allows repo admins to set one of those 3 config keys (yes, that second - # pattern matches two settings from "man git-config", if you look) - # - # The third choice (which you may have guessed already if you're familiar with - # regular expressions) is to allow anything and everything: - # $GL_GITCONFIG_KEYS = ".*"; - - # NOTE that due to some quoting and interpolation issues I have not been able - # to look at, a literal "." needs to be specified in this string as \\. (two - # backslashes and a dot). So this is how you'd allow any keys in the "foo" - # category: - # $GL_GITCONFIG_KEYS = "foo\\..*"; - - # -------------------------------------- - # ALLOW GITCONFIG KEYS EVEN FOR WILD REPOS - # - # This is an efficiency issue more than a security issue, since this requires - # trawling through all of $REPO_BASE looking for stuff :) - # $GL_GITCONFIG_WILD = 0; - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- HTPASSWD - - # security note: runs an external command (htpasswd) with specific arguments, - # including a user-chosen "password". - - # if you want to enable the "htpasswd" command, give this the absolute path to - # whatever file apache (etc) expect to find the passwords in. - + $GL_NO_CREATE_REPOS = 0; + $GL_NO_SETUP_AUTHKEYS = 0; + # $GL_WILDREPOS_DEFPERMS = 'R @all'; $HTPASSWD_FILE = ""; - - # Look in doc/3 ("easier to link gitweb authorisation with gitolite" section) - # for more details on using this feature. - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- RSYNC - - # security note: runs an external command (rsync) with specific arguments, all - # presumably filled in correctly by the client-side 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"; - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- SVNSERVE - - # security note: runs an external command (svnserve) with specific arguments, - # as specified below. %u is substituted with the username. - - # This setting allows launching svnserve when requested by the ssh client. - # This allows using the same SSH setup (hostname/username/public key) for both - # SVN and git access. Leave it undefined or set to the empty string to disable - # svnserve access. - $SVNSERVE = ""; - # $SVNSERVE = "/usr/bin/svnserve -r /var/svn/ -t --tunnel-user=%u"; - - # -------------------------------------- - # ALLOW REPO CONFIG TO USE WILDCARDS - - # security note: this used to in a separate "wildrepos" branch. You can - # create repositories based on wild cards, give "ownership" to the specific - # user who created it, allow him/her to hand out R and RW permissions to other - # users to collaborate, etc. This is powerful stuff, and I've made it as - # secure as I can, but it hasn't had the kind of rigorous line-by-line - # analysis that the old "master" branch had. - - # This has now been rolled into master, with all the functionality gated by - # this variable. Set this to 1 if you want to enable the wildrepos features. - # Please see doc/wildcard-repositories.mkd for details. - - $GL_WILDREPOS = 0; - - # -------------------------------------- - # DEFAULT WILDCARD PERMISSIONS - - # If set, this value will be used as the default user-level permission rule of - # new wildcard repositories. The user can change this value with the setperms command - # as desired after repository creation; it is only a default. Note that @all can be - # used here but is special; no other groups can be used in user-level permissions. - - # $GL_WILDREPOS_DEFPERMS = 'R @all'; - - # -------------------------------------- - # WILDREPOS PERMS CATEGORIES - - # Originally, we only allowed "R" and "RW" in the setperms command. Now we - # allow the admin to define other categories as she wishes (example: MANAGERS, - # TESTERS, etc). - - # This variable is a space-sep list of the allowed categories. - - # PLEASE, *PLEASE*, read the section in doc/wildcard-repositories.mkd for - # caveats and warnings. This is a VERY powerful feature and if you're not - # careful you could mess up the ACLs nicely. - - # this is the internal default if you don't set it (like if you didn't update - # your ~/.gitolite.rc with new variables when you upgraded gitolite): - $GL_WILDREPOS_PERM_CATS = "READERS WRITERS"; - - # you can use your own categories in addition to the standard ones; I suggest - # you include READERS and WRITERS for backward compat though: - # $GL_WILDREPOS_PERM_CATS = "READERS WRITERS MANAGERS"; - # $GL_WILDREPOS_PERM_CATS = "READERS WRITERS MANAGERS TESTERS"; - - # -------------------------------------- - # HOOK CHAINING - - # by default, the update hook in every repo chains to "update.secondary". - # Similarly, the post-update hook in the admin repo chains to - # "post-update.secondary". If you're fine with the defaults, there's no need - # to do anything here. However, if you want to use different names or paths, - # change these variables - # $UPDATE_CHAINS_TO = "hooks/update.secondary"; # $ADMIN_POST_UPDATE_CHAINS_TO = "hooks/post-update.secondary"; - - # -------------------------------------- - # ADMIN DEFINED COMMANDS - - # WARNING: Use this feature only if (a) you really really know what you're - # doing or (b) you really don't care too much about security. Please read - # doc/admin-defined-commands.mkd for details. - # $GL_ADC_PATH = ""; + # $GL_GET_MEMBERSHIPS_PGM = "/usr/local/bin/expand-ldap-user-to-groups" - # -------------------------------------- - # SITE-SPECIFIC INFORMATION - - # Some installations would like to give their users customised information - # (like a link to their own websites, for example) so that each end user does - # not have to grok all the gitolite documentation. - - # If this variable is defined, the "info" command will print it at the end of - # the listing. + # ------------------------------------------------------------------------------ + # less used/changed variables + # ------------------------------------------------------------------------------ + # $GL_ALL_INCLUDES_SPECIAL = 0; + # $GL_SLAVE_MODE = 0; + # $ENV{GL_SLAVES} = 'gitolite@server2 gitolite@server3'; + # PLEASE USE SINGLE QUOTES ABOVE, NOT DOUBLE QUOTES + $GL_WILDREPOS_PERM_CATS = "READERS WRITERS"; - # $GL_SITE_INFO = ""; + # ------------------------------------------------------------------------------ + # rarely changed variables + # ------------------------------------------------------------------------------ + $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m.log"; + # $GL_PERFLOGT="$GL_ADMINDIR/logs/perf-gitolite-%y-%m.log"; # $GL_SITE_INFO = "XYZ.COM DEVELOPERS: PLEASE SEE http://xyz.com/gitolite/help first"; - # -------------------------------------- - # USERGROUP HANDLING - - # Some sites would like to store group membership outside gitolite, because - # they already have it in (usually) their LDAP server, and it doesn't make - # sense to be forced to duplicate this information. - - # Set the following variable to the name of a script that, given a username as - # argument, will return a list of groups that she is a member of. - - # $GL_GET_MEMBERSHIPS_PGM = "/usr/local/bin/expand-ldap-user-to-groups" + # ------------------------------------------------------------------------------ + # variables that should NOT be changed after the install step completes + # ------------------------------------------------------------------------------ + $REPO_BASE="repositories"; - # -------------------------------------- + # ------------------------------------------------------------------------------ # per perl rules, this should be the last line in such a file: 1; diff --cc src/gitolite.pm index 7a36858,64bab29..83bf535 --- a/src/gitolite.pm +++ b/src/gitolite.pm @@@ -43,12 -43,17 +43,17 @@@ our $REPOPATT_PATT=qr(^\@?[0-9a-zA-Z[][ our $ADC_CMD_ARGS_PATT=qr(^[0-9a-zA-Z._\@/+:-]*$); # these come from the RC file -our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS, $REPO_BASE, $GL_CONF_COMPILED, $GL_BIG_CONFIG, $GL_PERFLOGT, $PROJECTS_LIST, $GL_ALL_INCLUDES_SPECIAL, $GL_SITE_INFO, $GL_GET_MEMBERSHIPS_PGM, $GL_WILDREPOS_PERM_CATS, $GL_KEYDIR, @GL_METADATA); +our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS, $REPO_BASE, $GL_CONF_COMPILED, $GL_BIG_CONFIG, $GL_PERFLOGT, $PROJECTS_LIST, $GL_ALL_INCLUDES_SPECIAL, $GL_SITE_INFO, $GL_GET_MEMBERSHIPS_PGM, $GL_WILDREPOS_PERM_CATS, $GL_KEYDIR, @GL_METADATA, @GL_METADATA_REQUIRED); our %repos; our %groups; - our %repo_config; + our %git_configs; + our %split_conf;; our $data_version; - our $current_data_version = '1.6'; + our $current_data_version = '1.7'; + + # the following are read in from individual repo's gl-conf files, if present + our %one_repo; + our %one_git_config; # ---------------------------------------------------------------------------- # convenience subs diff --cc src/gl-auth-command index dffdb62,1af4232..9bfca63 --- a/src/gl-auth-command +++ b/src/gl-auth-command @@@ -32,7 -32,7 +32,7 @@@ use warnings # ---------------------------------------------------------------------------- # these are set by the "rc" file - our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, @GL_METADATA); -our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, $GL_ALL_READ_ALL); ++our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, $GL_ALL_READ_ALL, @GL_METADATA); # and these are set by gitolite.pm our ($R_COMMANDS, $W_COMMANDS, $REPONAME_PATT, $REPOPATT_PATT, $ADC_CMD_ARGS_PATT); our %repos;
WARNING: multiple messages have this Message-ID (diff)
From: "Christian Ruppert" <idl0r@gentoo.org> To: gentoo-commits@lists.gentoo.org Subject: [gentoo-commits] proj/gitolite-gentoo:master commit in: / Date: Wed, 16 Feb 2011 16:07:39 +0000 (UTC) [thread overview] Message-ID: <e24d0debc5565599c4eef70f6a3be602977d0f02.idl0r@gentoo> (raw) Message-ID: <20110216160739.hzoHTn_azgllBeQ5Z91UPAciRddoEQjhQrHmiNmW2Ng@z> (raw) commit: e24d0debc5565599c4eef70f6a3be602977d0f02 Author: Christian Ruppert <idl0r <AT> gentoo <DOT> org> AuthorDate: Tue Feb 15 16:35:55 2011 +0000 Commit: Christian Ruppert <idl0r <AT> gentoo <DOT> org> CommitDate: Tue Feb 15 16:35:55 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gitolite-gentoo.git;a=commit;h=e24d0deb Merge commit 'refs/top-bases/t/export-key-metadata' into t/export-key-metadata Conflicts: conf/example.gitolite.rc src/gl-auth-command conf/example.conf | 3 - conf/example.gitolite.rc | 334 +++----------------- contrib/adc/get-rights-and-owner.in-perl | 41 +++ contrib/ldap/README.mkd | 18 ++ contrib/ldap/ldap-query-example.pl | 80 +++++ contrib/ldap/ldap-query-example.sh | 68 +++++ contrib/ldap/passwd | 112 +++++++ doc/CHANGELOG | 22 ++ doc/big-config.mkd | 229 ++++++++++---- doc/delegation.mkd | 2 +- doc/gitolite.rc.mkd | 332 ++++++++++++++++++++ doc/install-transcript.mkd | 2 +- doc/overkill.mkd | 8 +- doc/progit-article.mkd | 2 +- doc/ssh-troubleshooting.mkd | 2 +- doc/who-uses-it.mkd | 5 + src/gitolite.pm | 124 +++++---- src/gl-auth-command | 14 +- src/gl-compile-conf | 164 +++++++---- t/out/t01-repo-groups.1 | 2 +- t/out/t01-repo-groups.1b | 2 +- t/out/{t01-repo-groups.1b => t01-repo-groups.1bs} | 33 ++- t/out/t01-repo-groups.2 | 28 ++- t/out/t02-user-groups.1 | 2 +- t/out/t02-user-groups.1b | 2 +- t/out/{t02-user-groups.1b => t02-user-groups.1bs} | 35 +-- t/out/t02-user-groups.2 | 2 +- t/out/{t02-user-groups.2 => t02-user-groups.2bs} | 49 ++-- t/t01-repo-groups | 6 +- t/t02-user-groups | 8 +- t/t59-repo-not-on-disk | 12 +- t/test-driver.sh | 7 + 32 files changed, 1198 insertions(+), 552 deletions(-) diff --cc conf/example.gitolite.rc index 211b7cb,9ee7840..6f57994 --- a/conf/example.gitolite.rc +++ b/conf/example.gitolite.rc @@@ -61,260 -14,65 +14,73 @@@ $GL_ADMINDIR=$ENV{HOME} . "/.gitolite" $GL_CONF="$GL_ADMINDIR/conf/gitolite.conf"; $GL_KEYDIR="$GL_ADMINDIR/keydir"; $GL_CONF_COMPILED="$GL_ADMINDIR/conf/gitolite.conf-compiled.pm"; + # DO NOT CHANGE THE NEXT TWO LINES UNLESS YOU REALLY KNOW WHAT YOU'RE DOING. + # These variables are set automatically by the install method you choose. + # $GL_PACKAGE_CONF = ""; + # $GL_PACKAGE_HOOKS = ""; - # -------------------------------------- - - # 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/"; - - # -------------------------------------- - - # ---------------------------------------------------------------------- - # BIG CONFIG SETTINGS - - # Please read doc/big-config.mkd for details + # ------------------------------------------------------------------------------ + # most often used/changed variables + # ------------------------------------------------------------------------------ + $GL_WILDREPOS = 0; + $PROJECTS_LIST = $ENV{HOME} . "/projects.list"; + $REPO_UMASK = 0077; + # ------------------------------------------------------------------------------ + # variables with an efficiency impact + # ------------------------------------------------------------------------------ $GL_BIG_CONFIG = 0; $GL_NO_DAEMON_NO_GITWEB = 0; - $GL_NO_CREATE_REPOS = 0; - $GL_NO_SETUP_AUTHKEYS = 0; - - # ---------------------------------------------------------------------- - # SECURITY SENSITIVE SETTINGS - # - # Settings below this point may have security implications. That - # usually means that I have not thought hard enough about all the - # possible ways to crack security if these settings are enabled. - - # Please see details on each setting for specifics, if any. - # ---------------------------------------------------------------------- - +# Define which metadata variables shall be exported to the gitolite environment. +# Those variables can be used in hooks, e.g. for cia.vc +# A pubkey file might contain one or more of those variable. +# They can be defined by e.g:"# git-username: idl0r" +# Each '-' (dash) will be replaced by an '_' (underscore). - @GL_METADATA = ( "git-username", "git-email", "git-realname", "git-realname-ascii", "cia-vc-username" ); - @GL_METADATA_REQUIRED = ( "git-username", "git-email", "git-realname" ); - - # -------------------------------------- - # ALLOW REPO ADMIN TO SET GITCONFIG KEYS - # - # Gitolite allows you to set git repo options using the "config" keyword; see - # conf/example.conf for details and syntax. - # - # However, if you are in an installation where the repo admin does not (and - # should not) have shell access to the server, then allowing him to set - # arbitrary repo config options *may* be a security risk -- some config - # settings may allow executing arbitrary commands. - # - # You have 3 choices. By default $GL_GITCONFIG_KEYS is left empty, which - # completely disables this feature (meaning you cannot set git configs from - # the repo config). - ++#@GL_METADATA = ( "git-username", "git-email", "git-realname", "git-realname-ascii", "cia-vc-username" ); ++#@GL_METADATA_REQUIRED = ( "git-username", "git-email", "git-realname" ); ++ + # ------------------------------------------------------------------------------ + # VARIABLES WITH A SECURITY IMPACT. READ DOC WELL BEFORE CHANGING THESE. + # http://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.rc.mkd#_variables_with_a_security_impact + # ------------------------------------------------------------------------------ + # $GL_ALL_READ_ALL = 0; + $GIT_PATH=""; $GL_GITCONFIG_KEYS = ""; - - # The second choice is to give it a space separated list of settings you - # consider safe. (These are actually treated as a set of regular expression - # patterns, and any one of them must match). For example: - # $GL_GITCONFIG_KEYS = "core\.logAllRefUpdates core\..*compression"; - # allows repo admins to set one of those 3 config keys (yes, that second - # pattern matches two settings from "man git-config", if you look) - # - # The third choice (which you may have guessed already if you're familiar with - # regular expressions) is to allow anything and everything: - # $GL_GITCONFIG_KEYS = ".*"; - - # NOTE that due to some quoting and interpolation issues I have not been able - # to look at, a literal "." needs to be specified in this string as \\. (two - # backslashes and a dot). So this is how you'd allow any keys in the "foo" - # category: - # $GL_GITCONFIG_KEYS = "foo\\..*"; - - # -------------------------------------- - # ALLOW GITCONFIG KEYS EVEN FOR WILD REPOS - # - # This is an efficiency issue more than a security issue, since this requires - # trawling through all of $REPO_BASE looking for stuff :) - # $GL_GITCONFIG_WILD = 0; - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- HTPASSWD - - # security note: runs an external command (htpasswd) with specific arguments, - # including a user-chosen "password". - - # if you want to enable the "htpasswd" command, give this the absolute path to - # whatever file apache (etc) expect to find the passwords in. - + $GL_NO_CREATE_REPOS = 0; + $GL_NO_SETUP_AUTHKEYS = 0; + # $GL_WILDREPOS_DEFPERMS = 'R @all'; $HTPASSWD_FILE = ""; - - # Look in doc/3 ("easier to link gitweb authorisation with gitolite" section) - # for more details on using this feature. - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- RSYNC - - # security note: runs an external command (rsync) with specific arguments, all - # presumably filled in correctly by the client-side 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"; - - # -------------------------------------- - # EXTERNAL COMMAND HELPER -- SVNSERVE - - # security note: runs an external command (svnserve) with specific arguments, - # as specified below. %u is substituted with the username. - - # This setting allows launching svnserve when requested by the ssh client. - # This allows using the same SSH setup (hostname/username/public key) for both - # SVN and git access. Leave it undefined or set to the empty string to disable - # svnserve access. - $SVNSERVE = ""; - # $SVNSERVE = "/usr/bin/svnserve -r /var/svn/ -t --tunnel-user=%u"; - - # -------------------------------------- - # ALLOW REPO CONFIG TO USE WILDCARDS - - # security note: this used to in a separate "wildrepos" branch. You can - # create repositories based on wild cards, give "ownership" to the specific - # user who created it, allow him/her to hand out R and RW permissions to other - # users to collaborate, etc. This is powerful stuff, and I've made it as - # secure as I can, but it hasn't had the kind of rigorous line-by-line - # analysis that the old "master" branch had. - - # This has now been rolled into master, with all the functionality gated by - # this variable. Set this to 1 if you want to enable the wildrepos features. - # Please see doc/wildcard-repositories.mkd for details. - - $GL_WILDREPOS = 0; - - # -------------------------------------- - # DEFAULT WILDCARD PERMISSIONS - - # If set, this value will be used as the default user-level permission rule of - # new wildcard repositories. The user can change this value with the setperms command - # as desired after repository creation; it is only a default. Note that @all can be - # used here but is special; no other groups can be used in user-level permissions. - - # $GL_WILDREPOS_DEFPERMS = 'R @all'; - - # -------------------------------------- - # WILDREPOS PERMS CATEGORIES - - # Originally, we only allowed "R" and "RW" in the setperms command. Now we - # allow the admin to define other categories as she wishes (example: MANAGERS, - # TESTERS, etc). - - # This variable is a space-sep list of the allowed categories. - - # PLEASE, *PLEASE*, read the section in doc/wildcard-repositories.mkd for - # caveats and warnings. This is a VERY powerful feature and if you're not - # careful you could mess up the ACLs nicely. - - # this is the internal default if you don't set it (like if you didn't update - # your ~/.gitolite.rc with new variables when you upgraded gitolite): - $GL_WILDREPOS_PERM_CATS = "READERS WRITERS"; - - # you can use your own categories in addition to the standard ones; I suggest - # you include READERS and WRITERS for backward compat though: - # $GL_WILDREPOS_PERM_CATS = "READERS WRITERS MANAGERS"; - # $GL_WILDREPOS_PERM_CATS = "READERS WRITERS MANAGERS TESTERS"; - - # -------------------------------------- - # HOOK CHAINING - - # by default, the update hook in every repo chains to "update.secondary". - # Similarly, the post-update hook in the admin repo chains to - # "post-update.secondary". If you're fine with the defaults, there's no need - # to do anything here. However, if you want to use different names or paths, - # change these variables - # $UPDATE_CHAINS_TO = "hooks/update.secondary"; # $ADMIN_POST_UPDATE_CHAINS_TO = "hooks/post-update.secondary"; - - # -------------------------------------- - # ADMIN DEFINED COMMANDS - - # WARNING: Use this feature only if (a) you really really know what you're - # doing or (b) you really don't care too much about security. Please read - # doc/admin-defined-commands.mkd for details. - # $GL_ADC_PATH = ""; + # $GL_GET_MEMBERSHIPS_PGM = "/usr/local/bin/expand-ldap-user-to-groups" - # -------------------------------------- - # SITE-SPECIFIC INFORMATION - - # Some installations would like to give their users customised information - # (like a link to their own websites, for example) so that each end user does - # not have to grok all the gitolite documentation. - - # If this variable is defined, the "info" command will print it at the end of - # the listing. + # ------------------------------------------------------------------------------ + # less used/changed variables + # ------------------------------------------------------------------------------ + # $GL_ALL_INCLUDES_SPECIAL = 0; + # $GL_SLAVE_MODE = 0; + # $ENV{GL_SLAVES} = 'gitolite@server2 gitolite@server3'; + # PLEASE USE SINGLE QUOTES ABOVE, NOT DOUBLE QUOTES + $GL_WILDREPOS_PERM_CATS = "READERS WRITERS"; - # $GL_SITE_INFO = ""; + # ------------------------------------------------------------------------------ + # rarely changed variables + # ------------------------------------------------------------------------------ + $GL_LOGT="$GL_ADMINDIR/logs/gitolite-%y-%m.log"; + # $GL_PERFLOGT="$GL_ADMINDIR/logs/perf-gitolite-%y-%m.log"; # $GL_SITE_INFO = "XYZ.COM DEVELOPERS: PLEASE SEE http://xyz.com/gitolite/help first"; - # -------------------------------------- - # USERGROUP HANDLING - - # Some sites would like to store group membership outside gitolite, because - # they already have it in (usually) their LDAP server, and it doesn't make - # sense to be forced to duplicate this information. - - # Set the following variable to the name of a script that, given a username as - # argument, will return a list of groups that she is a member of. - - # $GL_GET_MEMBERSHIPS_PGM = "/usr/local/bin/expand-ldap-user-to-groups" + # ------------------------------------------------------------------------------ + # variables that should NOT be changed after the install step completes + # ------------------------------------------------------------------------------ + $REPO_BASE="repositories"; - # -------------------------------------- + # ------------------------------------------------------------------------------ # per perl rules, this should be the last line in such a file: 1; diff --cc src/gitolite.pm index 7a36858,64bab29..83bf535 --- a/src/gitolite.pm +++ b/src/gitolite.pm @@@ -43,12 -43,17 +43,17 @@@ our $REPOPATT_PATT=qr(^\@?[0-9a-zA-Z[][ our $ADC_CMD_ARGS_PATT=qr(^[0-9a-zA-Z._\@/+:-]*$); # these come from the RC file -our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS, $REPO_BASE, $GL_CONF_COMPILED, $GL_BIG_CONFIG, $GL_PERFLOGT, $PROJECTS_LIST, $GL_ALL_INCLUDES_SPECIAL, $GL_SITE_INFO, $GL_GET_MEMBERSHIPS_PGM, $GL_WILDREPOS_PERM_CATS, $GL_KEYDIR, @GL_METADATA); +our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS, $REPO_BASE, $GL_CONF_COMPILED, $GL_BIG_CONFIG, $GL_PERFLOGT, $PROJECTS_LIST, $GL_ALL_INCLUDES_SPECIAL, $GL_SITE_INFO, $GL_GET_MEMBERSHIPS_PGM, $GL_WILDREPOS_PERM_CATS, $GL_KEYDIR, @GL_METADATA, @GL_METADATA_REQUIRED); our %repos; our %groups; - our %repo_config; + our %git_configs; + our %split_conf;; our $data_version; - our $current_data_version = '1.6'; + our $current_data_version = '1.7'; + + # the following are read in from individual repo's gl-conf files, if present + our %one_repo; + our %one_git_config; # ---------------------------------------------------------------------------- # convenience subs diff --cc src/gl-auth-command index dffdb62,1af4232..9bfca63 --- a/src/gl-auth-command +++ b/src/gl-auth-command @@@ -32,7 -32,7 +32,7 @@@ use warnings # ---------------------------------------------------------------------------- # these are set by the "rc" file - our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, @GL_METADATA); -our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, $GL_ALL_READ_ALL); ++our ($GL_LOGT, $GL_CONF_COMPILED, $REPO_BASE, $GIT_PATH, $REPO_UMASK, $GL_ADMINDIR, $RSYNC_BASE, $HTPASSWD_FILE, $GL_WILDREPOS, $GL_WILDREPOS_DEFPERMS, $GL_ADC_PATH, $SVNSERVE, $PROJECTS_LIST, $GL_SLAVE_MODE, $GL_PERFLOGT, $GL_ALL_READ_ALL, @GL_METADATA); # and these are set by gitolite.pm our ($R_COMMANDS, $W_COMMANDS, $REPONAME_PATT, $REPOPATT_PATT, $ADC_CMD_ARGS_PATT); our %repos;
next reply other threads:[~2011-02-15 16:44 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-02-15 16:42 Christian Ruppert [this message] 2011-02-16 16:07 ` [gentoo-commits] proj/gitolite-gentoo:master commit in: / Christian Ruppert -- strict thread matches above, loose matches on Subject: below -- 2011-03-28 15:19 [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-28 15:19 Christian Ruppert 2011-03-25 20:00 [gentoo-commits] proj/gitolite-gentoo:t/ssh-key-options " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 20:00 [gentoo-commits] proj/gitolite-gentoo:t/ssh-key-options " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 20:00 Christian Ruppert 2011-03-25 20:00 Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-02-16 16:07 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-02-16 16:07 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-03-25 19:59 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-03-25 20:00 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-16 16:07 [gentoo-commits] proj/gitolite-gentoo:t/find_pubkeys-function " Christian Ruppert 2011-02-16 16:07 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-16 16:07 [gentoo-commits] proj/gitolite-gentoo:t/export_key_metadata-function " Christian Ruppert 2011-02-16 16:07 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-16 16:07 Christian Ruppert 2011-02-16 16:07 Christian Ruppert 2011-02-16 16:07 Christian Ruppert 2011-02-16 16:07 Christian Ruppert 2011-02-16 16:07 [gentoo-commits] proj/gitolite-gentoo:master " Christian Ruppert 2011-02-15 16:42 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-15 16:42 [gentoo-commits] proj/gitolite-gentoo:t/find_pubkeys-function " Christian Ruppert 2011-02-15 16:42 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-15 16:42 [gentoo-commits] proj/gitolite-gentoo:t/export_key_metadata-function " Christian Ruppert 2011-02-15 16:42 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-15 16:42 [gentoo-commits] proj/gitolite-gentoo:t/export_key_metadata-function " Christian Ruppert 2011-02-15 16:42 ` [gentoo-commits] proj/gitolite-gentoo:t/export-key-metadata " Christian Ruppert 2011-02-15 16:42 Christian Ruppert 2011-02-15 16:42 Christian Ruppert 2011-02-15 16:42 Christian Ruppert
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=e24d0debc5565599c4eef70f6a3be602977d0f02.idl0r@gentoo \ --to=idl0r@gentoo.org \ --cc=gentoo-commits@lists.gentoo.org \ --cc=gentoo-dev@lists.gentoo.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox