aboutsummaryrefslogtreecommitdiffstats
path: root/modules/cgit
diff options
context:
space:
mode:
Diffstat (limited to 'modules/cgit')
-rw-r--r--modules/cgit/manifests/init.pp27
-rw-r--r--modules/cgit/templates/cgitrc137
-rwxr-xr-xmodules/cgit/templates/filter.commit-links.sh44
-rw-r--r--modules/cgit/templates/vhost.conf8
-rw-r--r--modules/cgit/templates/webapp.conf3
5 files changed, 219 insertions, 0 deletions
diff --git a/modules/cgit/manifests/init.pp b/modules/cgit/manifests/init.pp
new file mode 100644
index 00000000..60dc9bad
--- /dev/null
+++ b/modules/cgit/manifests/init.pp
@@ -0,0 +1,27 @@
+class cgit {
+ package { 'cgit': }
+
+ file { '/etc/cgitrc':
+ content => template('cgit/cgitrc'),
+ notify => Service['apache'],
+ require => Package['cgit'],
+ }
+
+ apache::webapp_other { 'cgit':
+ webapp_file => 'cgit/webapp.conf',
+ }
+
+ mga_common::local_script { 'cgit.filter.commit-links.sh':
+ content => template('cgit/filter.commit-links.sh'),
+ }
+
+ apache::vhost::base { "gitweb.${::domain}":
+ content => template('cgit/vhost.conf')
+ }
+
+ apache::vhost::base { "ssl_gitweb.${::domain}":
+ use_ssl => true,
+ vhost => "gitweb.${::domain}",
+ content => template('cgit/vhost.conf')
+ }
+}
diff --git a/modules/cgit/templates/cgitrc b/modules/cgit/templates/cgitrc
new file mode 100644
index 00000000..1e1a399c
--- /dev/null
+++ b/modules/cgit/templates/cgitrc
@@ -0,0 +1,137 @@
+#
+# See cgitrc(5) or /usr/share/doc/cgit-*/cgitrc.5.html for details
+#
+
+# Enable caching of up to 1000 output entries
+cache-size=1000
+
+
+# Specify some default clone urls using macro expansion
+clone-url=git://git.mageia.org/$CGIT_REPO_URL ssh://git@git.mageia.org/$CGIT_REPO_URL
+
+# Specify the css url
+css=/cgit-data/cgit.css
+
+
+# Show owner on index page
+enable-index-owner=1
+
+
+# Allow http transport git clone
+enable-git-clone=1
+
+
+# Show extra links for each repository on the index page
+enable-index-links=1
+
+
+# Enable ASCII art commit history graph on the log pages
+enable-commit-graph=1
+
+
+# Show number of affected files per commit on the log pages
+enable-log-filecount=1
+
+
+# Show number of added/removed lines per commit on the log pages
+enable-log-linecount=1
+
+
+# Sort branches by date
+branch-sort=age
+
+
+# Add a cgit favicon
+#favicon=/favicon.ico
+
+
+# Use a custom logo
+logo=//nav.mageia.org/css/mageia-logo-nav-3.png
+
+# Try to avoid pagination on the mail page (until we have too many software repos)
+max-repo-count=200
+
+# Enable statistics per week, month and quarter
+max-stats=quarter
+
+
+# Set the title and heading of the repository index page
+root-title=Mageia git Repositories
+
+
+# Set a subheading for the repository index page
+root-desc=A web frontend to the git repositories of the Mageia project
+
+
+# Include some more info about example.com on the index page
+#root-readme=/var/www/htdocs/about.html
+
+
+# Allow download of tar.gz, tar.bz2 and zip-files
+#snapshots=tar.gz tar.bz2 zip
+snapshots=all
+
+
+##
+## List of common mimetypes
+##
+
+mimetype.gif=image/gif
+mimetype.html=text/html
+mimetype.jpg=image/jpeg
+mimetype.jpeg=image/jpeg
+mimetype.pdf=application/pdf
+mimetype.png=image/png
+mimetype.svg=image/svg+xml
+
+
+# Highlight source code with python pygments-based highlighter
+source-filter=/usr/libexec/cgit/filters/syntax-highlighting.sh
+
+# Format markdown, restructuredtext, manpages, text files, and html files
+# through the right converters
+about-filter=/usr/libexec/cgit/filters/about-formatting.sh
+
+##
+## Search for these files in the root of the default branch of repositories
+## for coming up with the about page:
+##
+readme=:README.mga.md
+readme=:README.md
+readme=:README.rst
+readme=:README.html
+readme=:README.txt
+readme=:README
+readme=:INSTALL.md
+readme=:INSTALL.rst
+readme=:INSTALL.html
+readme=:INSTALL.txt
+readme=:INSTALL
+
+# Special Case mainly for initscripts git repo where we cannot write to master
+readme=distro/mga:README.md
+
+##
+## List of repositories.
+## PS: Any repositories listed when section is unset will not be
+## displayed under a section heading
+## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos')
+## and included like this:
+## include=/etc/cgitrepos
+##
+
+#repo.url=foo
+#repo.path=/var/lib/git/foo.git
+#repo.desc=the master foo repository
+#repo.owner=fooman@example.com
+#repo.readme=info/web/about.html
+
+
+commit-filter=/usr/local/bin/cgit.filter.commit-links.sh
+
+enable-git-config=1
+section-from-path=-1
+case-sensitive-sort=0
+remove-suffix=1
+scan-path=/git
+enable-http-clone=0
diff --git a/modules/cgit/templates/filter.commit-links.sh b/modules/cgit/templates/filter.commit-links.sh
new file mode 100755
index 00000000..f0f7ee14
--- /dev/null
+++ b/modules/cgit/templates/filter.commit-links.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+# This script can be used to generate links in commit messages.
+#
+# To use this script, refer to this file with either the commit-filter or the
+# repo.commit-filter options in cgitrc.
+#
+# The following environment variables can be used to retrieve the configuration
+# of the repository for which this script is called:
+# CGIT_REPO_URL ( = repo.url setting )
+# CGIT_REPO_NAME ( = repo.name setting )
+# CGIT_REPO_PATH ( = repo.path setting )
+# CGIT_REPO_OWNER ( = repo.owner setting )
+# CGIT_REPO_DEFBRANCH ( = repo.defbranch setting )
+# CGIT_REPO_SECTION ( = section setting )
+# CGIT_REPO_CLONE_URL ( = repo.clone-url setting )
+#
+
+regex=''
+
+# This expression generates links to commits referenced by their SHA1.
+regex=$regex'
+s|\b([0-9a-fA-F]{7,40})\b|<a href="./?id=\1">\1</a>|g'
+
+# This expression generates links various common bugtrackers.
+# When editing this list, remember to edit the same list in
+# deployment/mgagit/templates/git-post-receive-hook
+regex=$regex'
+s|mga#([0-9]+)\b|<a href="https://bugs.mageia.org/\1">mga#\1</a>|g'
+regex=$regex'
+s|rhbz#([0-9]+)\b|<a href="https://bugzilla.redhat.com/show_bug.cgi?id=\1">rhbz#\1</a>|g'
+regex=$regex'
+s|fdo#([0-9]+)\b|<a href="https://bugs.freedesktop.org/show_bug.cgi?id=\1">fdo#\1</a>|g'
+regex=$regex'
+s|bko#([0-9]+)\b|<a href="https://bugs.kde.org/show_bug.cgi?id=\1">bko#\1</a>|g'
+regex=$regex'
+s|kde#([0-9]+)\b|<a href="https://bugs.kde.org/show_bug.cgi?id=\1">kde#\1</a>|g'
+regex=$regex'
+s|bgo#([0-9]+)\b|<a href="https://bugzilla.gnome.org/show_bug.cgi?id=\1">bgo#\1</a>|g'
+regex=$regex'
+s|gnome#([0-9]+)\b|<a href="https://bugzilla.gnome.org/show_bug.cgi?id=\1">gnome#\1</a>|g'
+regex=$regex'
+s|lp#([0-9]+)\b|<a href="https://launchpad.net/bugs/\1">lp#\1</a>|g'
+
+sed -re "$regex"
diff --git a/modules/cgit/templates/vhost.conf b/modules/cgit/templates/vhost.conf
new file mode 100644
index 00000000..5c1d99e7
--- /dev/null
+++ b/modules/cgit/templates/vhost.conf
@@ -0,0 +1,8 @@
+Alias /cgit-data /usr/share/cgit
+Alias /robots.txt /usr/share/cgit/robots.txt
+ScriptAliasMatch ^(.*) /var/www/cgi-bin/cgit$1
+
+<Directory /usr/share/cgit>
+ Order allow,deny
+ Allow from all
+</Directory>
diff --git a/modules/cgit/templates/webapp.conf b/modules/cgit/templates/webapp.conf
new file mode 100644
index 00000000..4e1d8289
--- /dev/null
+++ b/modules/cgit/templates/webapp.conf
@@ -0,0 +1,3 @@
+# Disable standard cgit configuration
+#Alias /cgit-data /usr/share/cgit
+#ScriptAlias /cgit /var/www/cgi-bin/cgit