cache-root::
Path used to store the cgit cache entries. Default value:
- "/var/cache/cgit".
+ "/var/cache/cgit". See also: "MACRO EXPANSION".
cache-dynamic-ttl::
Number which specifies the time-to-live, in minutes, for the cached
setting is only used if `repo.clone-url` is unspecified. Default value:
none.
+clone-url::
+ Space-separated list of clone-url templates. This setting is only
+ used if `repo.clone-url` is unspecified. Default value: none. See
+ also: "MACRO EXPANSION", "FILTER API".
+
commit-filter::
Specifies a command which will be invoked to format commit messages.
The command will get the message on its STDIN, and the STDOUT from the
include::
Name of a configfile to include before the rest of the current config-
- file is parsed. Default value: none.
+ file is parsed. Default value: none. See also: "MACRO EXPANSION".
index-header::
The content of the file specified with this option will be included
Set the mimetype for the specified filename extension. This is used
by the `plain` command when returning blob content.
+mimetype-file::
+ Specifies the file to use for automatic mimetype lookup. If specified
+ then this field is used as a fallback when no "mimetype.<ext>" match is
+ found. If unspecified then no such lookup is performed. The typical file
+ to use on a Linux system is /etc/mime.types. Default value: none. See
+ also: "mimetype.<ext>". The format of the file must comply to:
+ - a comment line is an empty line or a line starting with a hash (#),
+ optionally preceded by whitespace
+ - a non-comment line starts with the mimetype (like image/png), followed
+ by one or more file extensions (like jpg), all separated by whitespace
+
module-link::
Text which will be used as the formatstring for a hyperlink when a
submodule is printed in a directory listing. The arguments for the
formatstring are the path and SHA1 of the submodule commit. Default
- value: "./?repo=%s&page=commit&id=%s"
+ value: none.
nocache::
If set to the value "1" caching will be disabled. This settings is
project-list::
A list of subdirectories inside of scan-path, relative to it, that
should loaded as git repositories. This must be defined prior to
- scan-path. Default value: none. See also: scan-path.
+ scan-path. Default value: none. See also: scan-path, "MACRO
+ EXPANSION".
readme::
Text which will be used as default value for "repo.readme". Default
scan-path loads only the directories listed in the file pointed to by
project-list. Be advised that only the global settings taken
before the scan-path directive will be applied to each repository.
- Default value: none. See also: cache-scanrc-ttl, project-list.
+ Default value: none. See also: cache-scanrc-ttl, project-list,
+ "MACRO EXPANSION".
section::
The name of the current repository section - all repositories defined
repo.clone-url::
A list of space-separated urls which can be used to clone this repo.
- Default value: none.
+ Default value: none. See also: "MACRO EXPANSION".
repo.commit-filter::
Override the default commit-filter. Default value: none. See also:
repo.defbranch::
The name of the default branch for this repository. If no such branch
exists in the repository, the first branch name (when sorted) is used
- as default instead. Default value: "master".
+ as default instead. Default value: branch pointed to by HEAD, or
+ "master" if there is no suitable HEAD.
repo.desc::
The value to show as repository description. Default value: none.
calculated url of the repository index page will be used. Default
value: global logo-link.
+repo.module-link::
+ Text which will be used as the formatstring for a hyperlink when a
+ submodule is printed in a directory listing. The arguments for the
+ formatstring are the path and SHA1 of the submodule commit. Default
+ value: <module-link>
+
+repo.module-link.<path>::
+ Text which will be used as the formatstring for a hyperlink when a
+ submodule with the specified subdirectory path is printed in a
+ directory listing. The only argument for the formatstring is the SHA1
+ of the submodule commit. Default value: none.
+
repo.max-stats::
Override the default maximum statistics period. Valid values are equal
to the values specified for the global "max-stats" setting. Default
FILTER API
----------
-- about filter::
- This filter is given no arguments.
- The about text that is to be filtered is available on standard input and the
- filtered text is expected on standard output.
-- commit filter::
- This filter is given no arguments.
- The commit message text that is to be filtered is available on standard input
- and the filtered text is expected on standard output.
-- source filter::
- This filter is given a single parameter: the filename of the source file to
- filter. The filter can use the filename to determine (for example) the syntax
- highlighting mode.
- The contents of the source file that is to be filtered is available on
- standard input and the filtered contents is expected on standard output.
+about filter::
+ This filter is given no arguments. The about text that is to be
+ filtered is available on standard input and the filtered text is
+ expected on standard output.
+
+commit filter::
+ This filter is given no arguments. The commit message text that is to
+ be filtered is available on standard input and the filtered text is
+ expected on standard output.
+
+source filter::
+ This filter is given a single parameter: the filename of the source
+ file to filter. The filter can use the filename to determine (for
+ example) the syntax highlighting mode. The contents of the source
+ file that is to be filtered is available on standard input and the
+ filtered contents is expected on standard output.
Also, all filters are handed the following environment variables:
-- 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 )
+
+- CGIT_REPO_URL (from repo.url)
+- CGIT_REPO_NAME (from repo.name)
+- CGIT_REPO_PATH (from repo.path)
+- CGIT_REPO_OWNER (from repo.owner)
+- CGIT_REPO_DEFBRANCH (from repo.defbranch)
+- CGIT_REPO_SECTION (from repo.section)
+- CGIT_REPO_CLONE_URL (from repo.clone-url)
If a setting is not defined for a repository and the corresponding global
setting is also not defined (if applicable), then the corresponding
-environment variable will be an empty string.
+environment variable will be unset.
+
+
+MACRO EXPANSION
+---------------
+The following cgitrc options supports a simple macro expansion feature,
+where tokens prefixed with "$" are replaced with the value of a similary
+named environment variable:
+
+- cache-root
+- include
+- project-list
+- scan-path
+
+Macro expansion will also happen on the content of $CGIT_CONFIG, if
+defined.
+
+One usage of this feature is virtual hosting, which in its simplest form
+can be accomplished by adding the following line to /etc/cgitrc:
+
+ include=/etc/cgitrc.d/$HTTP_HOST
+
+The following options are expanded during request processing, and support
+the environment variables defined in "FILTER API":
-Note that under normal circumstance all these environment variables are
-defined. If however the total size of the defined settings exceed the
-allocated buffer within cgit then only the environment variables that fit
-in the allocated buffer are handed to the filter.
+- clone-url
+- repo.clone-url
EXAMPLE CGITRC FILE
cache-size=1000
-# Specify some default clone prefixes
-clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git
+# Specify some default clone urls using macro expansion
+clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_URL
# Specify the css url
css=/css/cgit.css