mgagit is a tool used to manage Mageia git repositories. How it works ------------ mgagit takes : - an ldap directory containing groups, and users with ssh keys - repositories and non-ldap groups definitions And generate the corresponding gitolite configuration and keys directory. Available commands ------------------ - glconf : Print gitolite configuration - glrun : Update gitolite configuration - showconf : Display the repos configuration in YAML. This is mainly useful for debugging. Configuration ------------- Configuration is done in the file /etc/mgagit.conf. The default configuration is available in file /usr/share/mgagit/config. The files are in YAML format. The following configuration options are available : use_ldap: enable use of ldap to fetch user keys and groups ldapserver: hostname of the ldap server binddn: dn used to authenticate on the ldap server bindpwfile: file containing the password used to authenticate groupbase: the base used to search ldap groups groupfilter: filter to search ldap groups userbase: the base used to search ldap users userfilter: filter to search ldap users uid_username_re: regular expression to extract a username from ldap uid ldap_users_infos: list of ldap user attributes that we should keep available group_re: regular expression to extract group name from cn pubkey_dir: directory containing users ssh keys, used by gitolite tmpl_dir: templates directory www_dir: output directory where some files are written (repos db dump, and some html pages) gitolite_config: gitolite configuration file repodef_dir: directory containing repos definitions (see repos_config) repos_config: list of repos and / or group definition directories. Use something like this to include a directory containing repos or groups definitions : prefix: prefix in the repos tree. In case of git_url or include_dir, this is also used to indicate that the included directory defines repos (*.repo files). group_prefix: This value is prefixed to the defined group names. This is also used to indicate that the included directory can contain groups definitions (*.group files). If you don't want to have a prefix, but still want to define groups, set an empty string. git_url: url of a git repository containing definitions, that will be cloned and pulled, in 'repodef_dir' include_dir: alternatively, you can specify the path to a directory containing definitions (if it's not from a git repository, or if you don't want to be pulled automatically) gl_template: template file used to define the repos Template variables ------------------ The following variables are available in all templates : config: The general config r: The repos, groups and users definitions The following variables are available in repo definition templates : repo: The repo name repo_conf: A function to get the value of some configuration option, for the current repo. It will first try to get it from the repo specific configuration, and if not defined will return the configuration from the repo definition origin, or the main configuration. origin_conf: This is the same as repo_conf, except that it will skip the repo specific configuration. You will use this function when you don't want the option to be overriden by the repo definition.