2e8e9af1d4
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
932 line
30 KiB
Plaintext
932 line
30 KiB
Plaintext
:man source: cgit
|
|
:man manual: cgit
|
|
|
|
CGITRC(5)
|
|
========
|
|
|
|
|
|
NAME
|
|
----
|
|
cgitrc - runtime configuration for cgit
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
Cgitrc contains all runtime settings for cgit, including the list of git
|
|
repositories, formatted as a line-separated list of NAME=VALUE pairs. Blank
|
|
lines, and lines starting with '#', are ignored.
|
|
|
|
|
|
LOCATION
|
|
--------
|
|
The default location of cgitrc, defined at compile time, is /etc/cgitrc. At
|
|
runtime, cgit will consult the environment variable CGIT_CONFIG and, if
|
|
defined, use its value instead.
|
|
|
|
|
|
GLOBAL SETTINGS
|
|
---------------
|
|
about-filter::
|
|
Specifies a command which will be invoked to format the content of
|
|
about pages (both top-level and for each repository). The command will
|
|
get the content of the about-file on its STDIN, the name of the file
|
|
as the first argument, and the STDOUT from the command will be
|
|
included verbatim on the about page. Default value: none. See
|
|
also: "FILTER API".
|
|
|
|
agefile::
|
|
Specifies a path, relative to each repository path, which can be used
|
|
to specify the date and time of the youngest commit in the repository.
|
|
The first line in the file is used as input to the "parse_date"
|
|
function in libgit. Recommended timestamp-format is "yyyy-mm-dd
|
|
hh:mm:ss". You may want to generate this file from a post-receive
|
|
hook. Default value: "info/web/last-modified".
|
|
|
|
auth-filter::
|
|
Specifies a command that will be invoked for authenticating repository
|
|
access. Receives quite a few arguments, and data on both stdin and
|
|
stdout for authentication processing. Details follow later in this
|
|
document. If no auth-filter is specified, no authentication is
|
|
performed. Default value: none. See also: "FILTER API".
|
|
|
|
branch-sort::
|
|
Flag which, when set to "age", enables date ordering in the branch ref
|
|
list, and when set to "name" enables ordering by branch name. Default
|
|
value: "name".
|
|
|
|
cache-root::
|
|
Path used to store the cgit cache entries. Default value:
|
|
"/var/cache/cgit". See also: "MACRO EXPANSION".
|
|
|
|
cache-static-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of repository pages accessed with a fixed SHA1. See also:
|
|
"CACHE". Default value: -1".
|
|
|
|
cache-dynamic-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of repository pages accessed without a fixed SHA1. See also:
|
|
"CACHE". Default value: "5".
|
|
|
|
cache-repo-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of the repository summary page. See also: "CACHE". Default
|
|
value: "5".
|
|
|
|
cache-root-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of the repository index page. See also: "CACHE". Default
|
|
value: "5".
|
|
|
|
cache-scanrc-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the result
|
|
of scanning a path for git repositories. See also: "CACHE". Default
|
|
value: "15".
|
|
|
|
cache-about-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of the repository about page. See also: "CACHE". Default
|
|
value: "15".
|
|
|
|
cache-snapshot-ttl::
|
|
Number which specifies the time-to-live, in minutes, for the cached
|
|
version of snapshots. See also: "CACHE". Default value: "5".
|
|
|
|
cache-size::
|
|
The maximum number of entries in the cgit cache. When set to "0",
|
|
caching is disabled. See also: "CACHE". Default value: "0"
|
|
|
|
case-sensitive-sort::
|
|
Sort items in the repo list case sensitively. Default value: "1".
|
|
See also: repository-sort, section-sort.
|
|
|
|
clone-prefix::
|
|
Space-separated list of common prefixes which, when combined with a
|
|
repository url, generates valid clone urls for the repository. This
|
|
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
|
|
command will be included verbatim as the commit message, i.e. this can
|
|
be used to implement bugtracker integration. Default value: none.
|
|
See also: "FILTER API".
|
|
|
|
commit-sort::
|
|
Flag which, when set to "date", enables strict date ordering in the
|
|
commit log, and when set to "topo" enables strict topological
|
|
ordering. If unset, the default ordering of "git log" is used. Default
|
|
value: unset.
|
|
|
|
css::
|
|
Url which specifies the css document to include in all cgit pages.
|
|
Default value: "/cgit.css".
|
|
|
|
email-filter::
|
|
Specifies a command which will be invoked to format names and email
|
|
address of committers, authors, and taggers, as represented in various
|
|
places throughout the cgit interface. This command will receive an
|
|
email address and an origin page string as its command line arguments,
|
|
and the text to format on STDIN. It is to write the formatted text back
|
|
out onto STDOUT. Default value: none. See also: "FILTER API".
|
|
|
|
embedded::
|
|
Flag which, when set to "1", will make cgit generate a html fragment
|
|
suitable for embedding in other html pages. Default value: none. See
|
|
also: "noheader".
|
|
|
|
enable-commit-graph::
|
|
Flag which, when set to "1", will make cgit print an ASCII-art commit
|
|
history graph to the left of the commit messages in the repository
|
|
log page. Default value: "0".
|
|
|
|
enable-filter-overrides::
|
|
Flag which, when set to "1", allows all filter settings to be
|
|
overridden in repository-specific cgitrc files. Default value: none.
|
|
|
|
enable-http-clone::
|
|
If set to "1", cgit will act as an dumb HTTP endpoint for git clones.
|
|
You can add "http://$HTTP_HOST$SCRIPT_NAME/$CGIT_REPO_URL" to clone-url
|
|
to expose this feature. If you use an alternate way of serving git
|
|
repositories, you may wish to disable this. Default value: "1".
|
|
|
|
enable-index-links::
|
|
Flag which, when set to "1", will make cgit generate extra links for
|
|
each repo in the repository index (specifically, to the "summary",
|
|
"commit" and "tree" pages). Default value: "0".
|
|
|
|
enable-index-owner::
|
|
Flag which, when set to "1", will make cgit display the owner of
|
|
each repo in the repository index. Default value: "1".
|
|
|
|
enable-log-filecount::
|
|
Flag which, when set to "1", will make cgit print the number of
|
|
modified files for each commit on the repository log page. Default
|
|
value: "0".
|
|
|
|
enable-log-linecount::
|
|
Flag which, when set to "1", will make cgit print the number of added
|
|
and removed lines for each commit on the repository log page. Default
|
|
value: "0".
|
|
|
|
enable-remote-branches::
|
|
Flag which, when set to "1", will make cgit display remote branches
|
|
in the summary and refs views. Default value: "0". See also:
|
|
"repo.enable-remote-branches".
|
|
|
|
enable-subject-links::
|
|
Flag which, when set to "1", will make cgit use the subject of the
|
|
parent commit as link text when generating links to parent commits
|
|
in commit view. Default value: "0". See also:
|
|
"repo.enable-subject-links".
|
|
|
|
enable-tree-linenumbers::
|
|
Flag which, when set to "1", will make cgit generate linenumber links
|
|
for plaintext blobs printed in the tree view. Default value: "1".
|
|
|
|
enable-git-config::
|
|
Flag which, when set to "1", will allow cgit to use git config to set
|
|
any repo specific settings. This option is used in conjunction with
|
|
"scan-path", and must be defined prior, to augment repo-specific
|
|
settings. The keys gitweb.owner, gitweb.category, and gitweb.description
|
|
will map to the cgit keys repo.owner, repo.section, and repo.desc,
|
|
respectively. All git config keys that begin with "cgit." will be mapped
|
|
to the corresponding "repo." key in cgit. Default value: "0". See also:
|
|
scan-path, section-from-path.
|
|
|
|
favicon::
|
|
Url used as link to a shortcut icon for cgit. It is suggested to use
|
|
the value "/favicon.ico" since certain browsers will ignore other
|
|
values. Default value: "/favicon.ico".
|
|
|
|
footer::
|
|
The content of the file specified with this option will be included
|
|
verbatim at the bottom of all pages (i.e. it replaces the standard
|
|
"generated by..." message. Default value: none.
|
|
|
|
head-include::
|
|
The content of the file specified with this option will be included
|
|
verbatim in the html HEAD section on all pages. Default value: none.
|
|
|
|
header::
|
|
The content of the file specified with this option will be included
|
|
verbatim at the top of all pages. Default value: none.
|
|
|
|
include::
|
|
Name of a configfile to include before the rest of the current config-
|
|
file is parsed. Default value: none. See also: "MACRO EXPANSION".
|
|
|
|
index-header::
|
|
The content of the file specified with this option will be included
|
|
verbatim above the repository index. This setting is deprecated, and
|
|
will not be supported by cgit-1.0 (use root-readme instead). Default
|
|
value: none.
|
|
|
|
index-info::
|
|
The content of the file specified with this option will be included
|
|
verbatim below the heading on the repository index page. This setting
|
|
is deprecated, and will not be supported by cgit-1.0 (use root-desc
|
|
instead). Default value: none.
|
|
|
|
local-time::
|
|
Flag which, if set to "1", makes cgit print commit and tag times in the
|
|
servers timezone. Default value: "0".
|
|
|
|
logo::
|
|
Url which specifies the source of an image which will be used as a logo
|
|
on all cgit pages. Default value: "/cgit.png".
|
|
|
|
logo-link::
|
|
Url loaded when clicking on the cgit logo image. If unspecified the
|
|
calculated url of the repository index page will be used. Default
|
|
value: none.
|
|
|
|
max-atom-items::
|
|
Specifies the number of items to display in atom feeds view. Default
|
|
value: "10".
|
|
|
|
max-commit-count::
|
|
Specifies the number of entries to list per page in "log" view. Default
|
|
value: "50".
|
|
|
|
max-message-length::
|
|
Specifies the maximum number of commit message characters to display in
|
|
"log" view. Default value: "80".
|
|
|
|
max-repo-count::
|
|
Specifies the number of entries to list per page on the repository
|
|
index page. Default value: "50".
|
|
|
|
max-repodesc-length::
|
|
Specifies the maximum number of repo description characters to display
|
|
on the repository index page. Default value: "80".
|
|
|
|
max-blob-size::
|
|
Specifies the maximum size of a blob to display HTML for in KBytes.
|
|
Default value: "0" (limit disabled).
|
|
|
|
max-stats::
|
|
Set the default maximum statistics period. Valid values are "week",
|
|
"month", "quarter" and "year". If unspecified, statistics are
|
|
disabled. Default value: none. See also: "repo.max-stats".
|
|
|
|
mimetype.<ext>::
|
|
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. 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
|
|
Default value: none. See also: "mimetype.<ext>".
|
|
|
|
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: none.
|
|
|
|
nocache::
|
|
If set to the value "1" caching will be disabled. This settings is
|
|
deprecated, and will not be honored starting with cgit-1.0. Default
|
|
value: "0".
|
|
|
|
noplainemail::
|
|
If set to "1" showing full author email addresses will be disabled.
|
|
Default value: "0".
|
|
|
|
noheader::
|
|
Flag which, when set to "1", will make cgit omit the standard header
|
|
on all pages. Default value: none. See also: "embedded".
|
|
|
|
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, "MACRO
|
|
EXPANSION".
|
|
|
|
readme::
|
|
Text which will be used as default value for "repo.readme". Multiple
|
|
config keys may be specified, and cgit will use the first found file
|
|
in this list. This is useful in conjunction with scan-path. Default
|
|
value: none. See also: scan-path, repo.readme.
|
|
|
|
remove-suffix::
|
|
If set to "1" and scan-path is enabled, if any repositories are found
|
|
with a suffix of ".git", this suffix will be removed for the url and
|
|
name. This must be defined prior to scan-path. Default value: "0".
|
|
See also: scan-path.
|
|
|
|
renamelimit::
|
|
Maximum number of files to consider when detecting renames. The value
|
|
"-1" uses the compiletime value in git (for further info, look at
|
|
`man git-diff`). Default value: "-1".
|
|
|
|
repo.group::
|
|
Legacy alias for "section". This option is deprecated and will not be
|
|
supported in cgit-1.0.
|
|
|
|
repository-sort::
|
|
The way in which repositories in each section are sorted. Valid values
|
|
are "name" for sorting by the repo name or "age" for sorting by the
|
|
most recently updated repository. Default value: "name". See also:
|
|
section, case-sensitive-sort, section-sort.
|
|
|
|
robots::
|
|
Text used as content for the "robots" meta-tag. Default value:
|
|
"index, nofollow".
|
|
|
|
root-desc::
|
|
Text printed below the heading on the repository index page. Default
|
|
value: "a fast webinterface for the git dscm".
|
|
|
|
root-readme::
|
|
The content of the file specified with this option will be included
|
|
verbatim below the "about" link on the repository index page. Default
|
|
value: none.
|
|
|
|
root-title::
|
|
Text printed as heading on the repository index page. Default value:
|
|
"Git Repository Browser".
|
|
|
|
scan-hidden-path::
|
|
If set to "1" and scan-path is enabled, scan-path will recurse into
|
|
directories whose name starts with a period ('.'). Otherwise,
|
|
scan-path will stay away from such directories (considered as
|
|
"hidden"). Note that this does not apply to the ".git" directory in
|
|
non-bare repos. This must be defined prior to scan-path.
|
|
Default value: 0. See also: scan-path.
|
|
|
|
scan-path::
|
|
A path which will be scanned for repositories. If caching is enabled,
|
|
the result will be cached as a cgitrc include-file in the cache
|
|
directory. If project-list has been defined prior to scan-path,
|
|
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,
|
|
"MACRO EXPANSION".
|
|
|
|
section::
|
|
The name of the current repository section - all repositories defined
|
|
after this option will inherit the current section name. Default value:
|
|
none.
|
|
|
|
section-sort::
|
|
Flag which, when set to "1", will sort the sections on the repository
|
|
listing by name. Set this flag to "0" if the order in the cgitrc file should
|
|
be preserved. Default value: "1". See also: section,
|
|
case-sensitive-sort, repository-sort.
|
|
|
|
section-from-path::
|
|
A number which, if defined prior to scan-path, specifies how many
|
|
path elements from each repo path to use as a default section name.
|
|
If negative, cgit will discard the specified number of path elements
|
|
above the repo directory. Default value: "0".
|
|
|
|
side-by-side-diffs::
|
|
If set to "1" shows side-by-side diffs instead of unidiffs per
|
|
default. Default value: "0".
|
|
|
|
snapshots::
|
|
Text which specifies the default set of snapshot formats that cgit
|
|
generates links for. The value is a space-separated list of zero or
|
|
more of the values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip".
|
|
Default value: none.
|
|
|
|
source-filter::
|
|
Specifies a command which will be invoked to format plaintext blobs
|
|
in the tree view. The command will get the blob content on its STDIN
|
|
and the name of the blob as its only command line argument. The STDOUT
|
|
from the command will be included verbatim as the blob contents, i.e.
|
|
this can be used to implement e.g. syntax highlighting. Default value:
|
|
none. See also: "FILTER API".
|
|
|
|
summary-branches::
|
|
Specifies the number of branches to display in the repository "summary"
|
|
view. Default value: "10".
|
|
|
|
summary-log::
|
|
Specifies the number of log entries to display in the repository
|
|
"summary" view. Default value: "10".
|
|
|
|
summary-tags::
|
|
Specifies the number of tags to display in the repository "summary"
|
|
view. Default value: "10".
|
|
|
|
strict-export::
|
|
Filename which, if specified, needs to be present within the repository
|
|
for cgit to allow access to that repository. This can be used to emulate
|
|
gitweb's EXPORT_OK and STRICT_EXPORT functionality and limit cgit's
|
|
repositories to match those exported by git-daemon. This option must
|
|
be defined prior to scan-path.
|
|
|
|
virtual-root::
|
|
Url which, if specified, will be used as root for all cgit links. It
|
|
will also cause cgit to generate 'virtual urls', i.e. urls like
|
|
'/cgit/tree/README' as opposed to '?r=cgit&p=tree&path=README'. Default
|
|
value: none.
|
|
NOTE: cgit has recently learned how to use PATH_INFO to achieve the
|
|
same kind of virtual urls, so this option will probably be deprecated.
|
|
|
|
|
|
REPOSITORY SETTINGS
|
|
-------------------
|
|
repo.about-filter::
|
|
Override the default about-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.branch-sort::
|
|
Flag which, when set to "age", enables date ordering in the branch ref
|
|
list, and when set to "name" enables ordering by branch name. Default
|
|
value: "name".
|
|
|
|
repo.clone-url::
|
|
A list of space-separated urls which can be used to clone this repo.
|
|
Default value: none. See also: "MACRO EXPANSION".
|
|
|
|
repo.commit-filter::
|
|
Override the default commit-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.commit-sort::
|
|
Flag which, when set to "date", enables strict date ordering in the
|
|
commit log, and when set to "topo" enables strict topological
|
|
ordering. If unset, the default ordering of "git log" is used. Default
|
|
value: unset.
|
|
|
|
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: 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.
|
|
|
|
repo.email-filter::
|
|
Override the default email-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.enable-commit-graph::
|
|
A flag which can be used to disable the global setting
|
|
`enable-commit-graph'. Default value: none.
|
|
|
|
repo.enable-log-filecount::
|
|
A flag which can be used to disable the global setting
|
|
`enable-log-filecount'. Default value: none.
|
|
|
|
repo.enable-log-linecount::
|
|
A flag which can be used to disable the global setting
|
|
`enable-log-linecount'. Default value: none.
|
|
|
|
repo.enable-remote-branches::
|
|
Flag which, when set to "1", will make cgit display remote branches
|
|
in the summary and refs views. Default value: <enable-remote-branches>.
|
|
|
|
repo.enable-subject-links::
|
|
A flag which can be used to override the global setting
|
|
`enable-subject-links'. Default value: none.
|
|
|
|
repo.logo::
|
|
Url which specifies the source of an image which will be used as a logo
|
|
on this repo's pages. Default value: global logo.
|
|
|
|
repo.logo-link::
|
|
Url loaded when clicking on the cgit logo image. If unspecified the
|
|
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
|
|
value: none.
|
|
|
|
repo.name::
|
|
The value to show as repository name. Default value: <repo.url>.
|
|
|
|
repo.owner::
|
|
A value used to identify the owner of the repository. Default value:
|
|
none.
|
|
|
|
repo.path::
|
|
An absolute path to the repository directory. For non-bare repositories
|
|
this is the .git-directory. Default value: none.
|
|
|
|
repo.readme::
|
|
A path (relative to <repo.path>) which specifies a file to include
|
|
verbatim as the "About" page for this repo. You may also specify a
|
|
git refspec by head or by hash by prepending the refspec followed by
|
|
a colon. For example, "master:docs/readme.mkd". If the value begins
|
|
with a colon, i.e. ":docs/readme.rst", the default branch of the
|
|
repository will be used. Sharing any file will expose that entire
|
|
directory tree to the "/about/PATH" endpoints, so be sure that there
|
|
are no non-public files located in the same directory as the readme
|
|
file. Default value: <readme>.
|
|
|
|
repo.snapshots::
|
|
A mask of snapshot formats for this repo that cgit generates links for,
|
|
restricted by the global "snapshots" setting. Default value:
|
|
<snapshots>.
|
|
|
|
repo.section::
|
|
Override the current section name for this repository. Default value:
|
|
none.
|
|
|
|
repo.source-filter::
|
|
Override the default source-filter. Default value: none. See also:
|
|
"enable-filter-overrides". See also: "FILTER API".
|
|
|
|
repo.url::
|
|
The relative url used to access the repository. This must be the first
|
|
setting specified for each repo. Default value: none.
|
|
|
|
|
|
REPOSITORY-SPECIFIC CGITRC FILE
|
|
-------------------------------
|
|
When the option "scan-path" is used to auto-discover git repositories, cgit
|
|
will try to parse the file "cgitrc" within any found repository. Such a
|
|
repo-specific config file may contain any of the repo-specific options
|
|
described above, except "repo.url" and "repo.path". Additionally, the "filter"
|
|
options are only acknowledged in repo-specific config files when
|
|
"enable-filter-overrides" is set to "1".
|
|
|
|
Note: the "repo." prefix is dropped from the option names in repo-specific
|
|
config files, e.g. "repo.desc" becomes "desc".
|
|
|
|
|
|
FILTER API
|
|
----------
|
|
By default, filters are separate processes that are executed each time they
|
|
are needed. Alternative technologies may be used by prefixing the filter
|
|
specification with the relevant string; available values are:
|
|
|
|
'exec:'::
|
|
The default "one process per filter" mode.
|
|
|
|
'lua:'::
|
|
Executes the script using a built-in Lua interpreter. The script is
|
|
loaded once per execution of cgit, and may be called multiple times
|
|
during cgit's lifetime, making it a good choice for repeated filters
|
|
such as the 'email filter'. It responds to three functions:
|
|
|
|
'filter_open(argument1, argument2, argument3, ...)'::
|
|
This is called upon activation of the filter for a particular
|
|
set of data.
|
|
'filter_write(buffer)'::
|
|
This is called whenever cgit writes data to the webpage.
|
|
'filter_close()'::
|
|
This is called when the current filtering operation is
|
|
completed. It must return an integer value. Usually 0
|
|
indicates success.
|
|
|
|
Additionally, cgit exposes to the Lua the following built-in functions:
|
|
|
|
'html(str)'::
|
|
Writes 'str' to the webpage.
|
|
'html_txt(str)'::
|
|
HTML escapes and writes 'str' to the webpage.
|
|
'html_attr(str)'::
|
|
HTML escapes for an attribute and writes "str' to the webpage.
|
|
'html_url_path(str)'::
|
|
URL escapes for a path and writes 'str' to the webpage.
|
|
'html_url_arg(str)'::
|
|
URL escapes for an argument and writes 'str' to the webpage.
|
|
'html_include(file)'::
|
|
Includes 'file' in webpage.
|
|
|
|
|
|
Parameters are provided to filters as follows.
|
|
|
|
about 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 type of syntax to follow when formatting the readme file.
|
|
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.
|
|
|
|
email filter::
|
|
This filter is given two parameters: the email address of the relevent
|
|
author and a string indicating the originating page. The filter will
|
|
then receive the text string to format on standard input and is
|
|
expected to write to standard output the formatted text to be included
|
|
in the page.
|
|
|
|
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.
|
|
|
|
auth filter::
|
|
The authentication filter receives 12 parameters:
|
|
- filter action, explained below, which specifies which action the
|
|
filter is called for
|
|
- http cookie
|
|
- http method
|
|
- http referer
|
|
- http path
|
|
- http https flag
|
|
- cgit repo
|
|
- cgit page
|
|
- cgit url
|
|
- cgit login url
|
|
When the filter action is "body", this filter must write to output the
|
|
HTML for displaying the login form, which POSTs to the login url. When
|
|
the filter action is "authenticate-cookie", this filter must validate
|
|
the http cookie and return a 0 if it is invalid or 1 if it is invalid,
|
|
in the exit code / close function. If the filter action is
|
|
"authenticate-post", this filter receives POST'd parameters on
|
|
standard input, and should write a complete CGI request, preferably
|
|
with a 302 redirect, and write to output one or more "Set-Cookie"
|
|
HTTP headers, each followed by a newline.
|
|
|
|
Please see `filters/simple-authentication.lua` for a clear example
|
|
script that may be modified.
|
|
|
|
|
|
All filters are handed the following environment variables:
|
|
|
|
- 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 unset.
|
|
|
|
|
|
MACRO EXPANSION
|
|
---------------
|
|
The following cgitrc options support a simple macro expansion feature,
|
|
where tokens prefixed with "$" are replaced with the value of a similarly
|
|
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":
|
|
|
|
- clone-url
|
|
- repo.clone-url
|
|
|
|
|
|
CACHE
|
|
------
|
|
|
|
All cache ttl values are in minutes. Negative ttl values indicate that a page
|
|
type will never expire, and thus the first time a URL is accessed, the result
|
|
will be cached indefinitely, even if the underlying git repository changes.
|
|
Conversely, when a ttl value is zero, the cache is disabled for that
|
|
particular page type, and the page type is never cached.
|
|
|
|
|
|
EXAMPLE CGITRC FILE
|
|
-------------------
|
|
|
|
....
|
|
# Enable caching of up to 1000 output entries
|
|
cache-size=1000
|
|
|
|
|
|
# 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
|
|
|
|
|
|
# Show owner on index page
|
|
enable-index-owner=1
|
|
|
|
|
|
# Allow http transport git clone
|
|
enable-http-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=/img/mylogo.png
|
|
|
|
|
|
# Enable statistics per week, month and quarter
|
|
max-stats=quarter
|
|
|
|
|
|
# Set the title and heading of the repository index page
|
|
root-title=example.com git repositories
|
|
|
|
|
|
# Set a subheading for the repository index page
|
|
root-desc=tracking the foobar development
|
|
|
|
|
|
# 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
|
|
|
|
|
|
##
|
|
## 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=/var/www/cgit/filters/syntax-highlighting.py
|
|
|
|
# Format markdown, restructuredtext, manpages, text files, and html files
|
|
# through the right converters
|
|
about-filter=/var/www/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.md
|
|
readme=:readme.md
|
|
readme=:README.mkd
|
|
readme=:readme.mkd
|
|
readme=:README.rst
|
|
readme=:readme.rst
|
|
readme=:README.html
|
|
readme=:readme.html
|
|
readme=:README.htm
|
|
readme=:readme.htm
|
|
readme=:README.txt
|
|
readme=:readme.txt
|
|
readme=:README
|
|
readme=:readme
|
|
readme=:INSTALL.md
|
|
readme=:install.md
|
|
readme=:INSTALL.mkd
|
|
readme=:install.mkd
|
|
readme=:INSTALL.rst
|
|
readme=:install.rst
|
|
readme=:INSTALL.html
|
|
readme=:install.html
|
|
readme=:INSTALL.htm
|
|
readme=:install.htm
|
|
readme=:INSTALL.txt
|
|
readme=:install.txt
|
|
readme=:INSTALL
|
|
readme=:install
|
|
|
|
|
|
##
|
|
## 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=/pub/git/foo.git
|
|
repo.desc=the master foo repository
|
|
repo.owner=fooman@example.com
|
|
repo.readme=info/web/about.html
|
|
|
|
|
|
repo.url=bar
|
|
repo.path=/pub/git/bar.git
|
|
repo.desc=the bars for your foo
|
|
repo.owner=barman@example.com
|
|
repo.readme=info/web/about.html
|
|
|
|
|
|
# The next repositories will be displayed under the 'extras' heading
|
|
section=extras
|
|
|
|
|
|
repo.url=baz
|
|
repo.path=/pub/git/baz.git
|
|
repo.desc=a set of extensions for bar users
|
|
|
|
repo.url=wiz
|
|
repo.path=/pub/git/wiz.git
|
|
repo.desc=the wizard of foo
|
|
|
|
|
|
# Add some mirrored repositories
|
|
section=mirrors
|
|
|
|
|
|
repo.url=git
|
|
repo.path=/pub/git/git.git
|
|
repo.desc=the dscm
|
|
|
|
|
|
repo.url=linux
|
|
repo.path=/pub/git/linux.git
|
|
repo.desc=the kernel
|
|
|
|
# Disable adhoc downloads of this repo
|
|
repo.snapshots=0
|
|
|
|
# Disable line-counts for this repo
|
|
repo.enable-log-linecount=0
|
|
|
|
# Restrict the max statistics period for this repo
|
|
repo.max-stats=month
|
|
....
|
|
|
|
|
|
BUGS
|
|
----
|
|
Comments currently cannot appear on the same line as a setting; the comment
|
|
will be included as part of the value. E.g. this line:
|
|
|
|
robots=index # allow indexing
|
|
|
|
will generate the following html element:
|
|
|
|
<meta name='robots' content='index # allow indexing'/>
|
|
|
|
|
|
|
|
AUTHOR
|
|
------
|
|
Lars Hjemli <hjemli@gmail.com>
|
|
Jason A. Donenfeld <Jason@zx2c4.com>
|