aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/gitolite.rc.bookworm195
-rw-r--r--manifests/cgit.pp26
-rw-r--r--templates/cgitrc.erb29
3 files changed, 234 insertions, 16 deletions
diff --git a/files/gitolite.rc.bookworm b/files/gitolite.rc.bookworm
new file mode 100644
index 0000000..04b8fd4
--- /dev/null
+++ b/files/gitolite.rc.bookworm
@@ -0,0 +1,195 @@
+# configuration variables for gitolite
+
+# This file is in perl syntax. But you do NOT need to know perl to edit it --
+# just mind the commas, use single quotes unless you know what you're doing,
+# and make sure the brackets and braces stay matched up!
+
+# (Tip: perl allows a comma after the last item in a list also!)
+
+# HELP for commands can be had by running the command with "-h".
+
+# HELP for all the other FEATURES can be found in the documentation (look for
+# "list of non-core programs shipped with gitolite" in the master index) or
+# directly in the corresponding source file.
+
+%RC = (
+
+ # ------------------------------------------------------------------
+
+ # default umask gives you perms of '0700'; see the rc file docs for
+ # how/why you might change this
+ UMASK => 0027,
+
+ # look for "git-config" in the documentation
+ GIT_CONFIG_KEYS => 'gitweb\.owner gitweb\.description',
+
+ # comment out if you don't need all the extra detail in the logfile
+ LOG_EXTRA => 1,
+ # syslog options
+ # 1. leave this section as is for normal gitolite logging
+ # 2. uncomment this line to log only to syslog:
+ # LOG_DEST => 'syslog',
+ # 3. uncomment this line to log to syslog and the normal gitolite log:
+ # LOG_DEST => 'syslog,normal',
+
+ # roles. add more roles (like MANAGER, TESTER, ...) here.
+ # WARNING: if you make changes to this hash, you MUST run 'gitolite
+ # compile' afterward, and possibly also 'gitolite trigger POST_COMPILE'
+ ROLES => {
+ READERS => 1,
+ WRITERS => 1,
+ },
+
+ # enable caching (currently only Redis). PLEASE RTFM BEFORE USING!!!
+ # CACHE => 'Redis',
+
+ # ------------------------------------------------------------------
+
+ # rc variables used by various features
+
+ # the 'info' command prints this as additional info, if it is set
+ # SITE_INFO => 'Please see http://blahblah/gitolite for more help',
+
+ # the CpuTime feature uses these
+ # display user, system, and elapsed times to user after each git operation
+ # DISPLAY_CPU_TIME => 1,
+ # display a warning if total CPU times (u, s, cu, cs) crosses this limit
+ # CPU_TIME_WARN_LIMIT => 0.1,
+
+ # the Mirroring feature needs this
+ # HOSTNAME => "foo",
+
+ # TTL for redis cache; PLEASE SEE DOCUMENTATION BEFORE UNCOMMENTING!
+ # CACHE_TTL => 600,
+
+ # ------------------------------------------------------------------
+
+ # suggested locations for site-local gitolite code (see cust.html)
+
+ # this one is managed directly on the server
+ # LOCAL_CODE => "$ENV{HOME}/local",
+
+ # or you can use this, which lets you put everything in a subdirectory
+ # called "local" in your gitolite-admin repo. For a SECURITY WARNING
+ # on this, see http://gitolite.com/gitolite/cust.html#pushcode
+ # LOCAL_CODE => "$rc{GL_ADMIN_BASE}/local",
+
+ # ------------------------------------------------------------------
+
+ # List of commands and features to enable
+
+ ENABLE => [
+
+ # COMMANDS
+
+ # These are the commands enabled by default
+ 'help',
+ 'desc',
+ 'info',
+ 'perms',
+ 'writable',
+
+ # Uncomment or add new commands here.
+ # 'create',
+ # 'fork',
+ # 'mirror',
+ # 'readme',
+ # 'sskm',
+ # 'D',
+
+ # These FEATURES are enabled by default.
+
+ # essential (unless you're using smart-http mode)
+ 'ssh-authkeys',
+
+ # creates git-config enties from gitolite.conf file entries like 'config foo.bar = baz'
+ 'git-config',
+
+ # creates git-daemon-export-ok files; if you don't use git-daemon, comment this out
+ 'daemon',
+
+ # creates projects.list file; if you don't use gitweb, comment this out
+ 'gitweb',
+
+ # These FEATURES are disabled by default; uncomment to enable. If you
+ # need to add new ones, ask on the mailing list :-)
+
+ # user-visible behaviour
+
+ # prevent wild repos auto-create on fetch/clone
+ # 'no-create-on-read',
+ # no auto-create at all (don't forget to enable the 'create' command!)
+ # 'no-auto-create',
+
+ # access a repo by another (possibly legacy) name
+ # 'Alias',
+
+ # give some users direct shell access. See documentation in
+ # sts.html for details on the following two choices.
+ # "Shell $ENV{HOME}/.gitolite.shell-users",
+ # 'Shell alice bob',
+
+ # set default roles from lines like 'option default.roles-1 = ...', etc.
+ # 'set-default-roles',
+
+ # show more detailed messages on deny
+ # 'expand-deny-messages',
+
+ # show a message of the day
+ # 'Motd',
+
+ # system admin stuff
+
+ # enable mirroring (don't forget to set the HOSTNAME too!)
+ # 'Mirroring',
+
+ # allow people to submit pub files with more than one key in them
+ # 'ssh-authkeys-split',
+
+ # selective read control hack
+ # 'partial-copy',
+
+ # manage local, gitolite-controlled, copies of read-only upstream repos
+ # 'upstream',
+
+ # updates 'description' file instead of 'gitweb.description' config item
+ # 'cgit',
+
+ # allow repo-specific hooks to be added
+ # 'repo-specific-hooks',
+
+ # performance, logging, monitoring...
+
+ # be nice
+ # 'renice 10',
+
+ # log CPU times (user, system, cumulative user, cumulative system)
+ # 'CpuTime',
+
+ # syntactic_sugar for gitolite.conf and included files
+
+ # allow backslash-escaped continuation lines in gitolite.conf
+ # 'continuation-lines',
+
+ # create implicit user groups from directory names in keydir/
+ # 'keysubdirs-as-groups',
+
+ # allow simple line-oriented macros
+ # 'macros',
+
+ # Kindergarten mode
+
+ # disallow various things that sensible people shouldn't be doing anyway
+ # 'Kindergarten',
+ ],
+
+);
+
+# ------------------------------------------------------------------------------
+# per perl rules, this should be the last line in such a file:
+1;
+
+# Local variables:
+# mode: perl
+# End:
+# vim: set syn=perl:
diff --git a/manifests/cgit.pp b/manifests/cgit.pp
index 069e356..e48b3f4 100644
--- a/manifests/cgit.pp
+++ b/manifests/cgit.pp
@@ -1,9 +1,25 @@
class git::cgit(
- $css = '/cgit-css/cgit.css',
- $logo = '/cgit.png',
- $root_title = 'Git Repository Browser',
- $root_desc = 'a fast webinterface for the git dscm',
- $clone_url = 'https://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL git://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL git@$HTTP_HOST:$CGIT_REPO_URL'
+ $css = '/cgit-css/cgit.css',
+ $logo = '/cgit.png',
+ $root_title = 'Git Repository Browser',
+ $root_desc = 'a fast webinterface for the git dscm',
+ $clone_url = 'https://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL git://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL git@$HTTP_HOST:$CGIT_REPO_URL',
+ $cache_about_ttl = '15',
+ $cache_dynamic_ttl = '5',
+ $cache_repo_ttl = '5',
+ $cache_root = '/var/cache/cgit',
+ $cache_root_ttl = '5',
+ $cache_scanrc_ttl = '5',
+ $cache_size = '0',
+ $cache_snapshot_ttl = '5',
+ $cache_static_ttl = '-1',
+ $enable_git_clone = '1',
+ $enable_http_clone = '1',
+ $enable_index_links = '1',
+ $source_filter = '/usr/lib/cgit/filters/syntax-highlighting.py',
+ $about_filter = '/usr/lib/cgit/filters/about-formatting.sh',
+ $enable_git_config = '1',
+ $remove_suffix = '1',
) {
package { 'cgit':
ensure => $::lsbdistcodename ? {
diff --git a/templates/cgitrc.erb b/templates/cgitrc.erb
index fb97e32..e925f86 100644
--- a/templates/cgitrc.erb
+++ b/templates/cgitrc.erb
@@ -1,4 +1,3 @@
-#
# cgit config
# see cgitrc(5) for details
@@ -13,17 +12,25 @@ root-desc=<%= @root_desc %>
clone-url=<%= @clone_url %>
snapshots=tar.gz tar.bz2
+# caching
+cache-about-ttl=<%= @cache_about_ttl %>
+cache-dynamic-ttl=<%= @cache_dynamic_ttl %>
+cache-repo-ttl=<%= @cache_repo_ttl %>
+cache-root=<%= @cache_root %>
+cache-root-ttl=<%= @cache_root_ttl %>
+cache-scanrc-ttl=<%= @cache_scanrc_ttl %>
+cache-size=<%= @cache_size %>
+cache-snapshot-ttl=<%= @cache_snapshot_ttl %>
+cache-static-ttl=<%= @cache_static_ttl %>
+
# switches
-nocache=1
-cache-size=0
-enable-http-clone=1
-enable-index-links=1
-enable-http-clone=1
-enable-git-clone=1
+enable-git-clone=<%= @enable_git_clone %>
+enable-http-clone=<%= @enable_http_clone %>
+enable-index-links=<%= @enable_index_links %>
# filters
-source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
-about-filter=/usr/lib/cgit/filters/about-formatting.sh
+source-filter=<%= @source_filter %>
+about-filter=<%= @about_filter %>
# readme files
readme=:README.md
@@ -73,7 +80,7 @@ mimetype.png=image/png
mimetype.svg=image/svg+xml
# projects
-enable-git-config=1
-remove-suffix=1
+enable-git-config=<%= @enable_git_config %>
+remove-suffix=<%= @remove_suffix %>
project-list=/var/git/projects.list
scan-path=/var/git/repositories/