X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/dcbc0438b2543a733858d62170f3110a89edbed6..d6e9200cc35411f3f27426b608bcfdef9348e6d3:/cgitrc.5.txt diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 6437ef4..c45dbd3 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -39,7 +39,15 @@ agefile:: 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". Default value: "info/web/last-modified". + 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 @@ -50,32 +58,40 @@ 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. Negative + values have infinite ttl. 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. Default - value: "5". + version of repository pages accessed without a fixed SHA1. Negative + values have infinite ttl. Default value: "5". cache-repo-ttl:: Number which specifies the time-to-live, in minutes, for the cached - version of the repository summary page. Default value: "5". + version of the repository summary page. Negative values have infinite + ttl. Default value: "5". cache-root-ttl:: Number which specifies the time-to-live, in minutes, for the cached - version of the repository index page. Default value: "5". + version of the repository index page. Negative values have infinite + ttl. 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. Default value: "15". + of scanning a path for git repositories. Negative values have infinite + ttl. Default value: "15". + +cache-about-ttl:: + Number which specifies the time-to-live, in minutes, for the cached + version of the repository about page. Negative values have infinite + ttl. Default value: "15". cache-size:: The maximum number of entries in the cgit cache. Default value: "0" (i.e. caching is disabled). -cache-static-ttl:: - Number which specifies the time-to-live, in minutes, for the cached - version of repository pages accessed with a fixed SHA1. Default value: - "5". - case-sensitive-sort:: Sort items in the repo list case sensitively. Default value: "1". See also: repository-sort, section-sort. @@ -108,6 +124,14 @@ 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 @@ -124,8 +148,9 @@ enable-filter-overrides:: enable-http-clone:: If set to "1", cgit will act as an dumb HTTP endpoint for git clones. - If you use an alternate way of serving git repositories, you may wish - to disable this. Default value: "1". + 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 @@ -167,14 +192,14 @@ enable-git-config:: "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, - respectivly. All git config keys that begin with "cgit." will be mapped + 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. If specified, it is - suggested to use the value "/favicon.ico" since certain browsers will - ignore other values. Default value: none. + 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 @@ -275,7 +300,7 @@ nocache:: value: "0". noplainemail:: - If set to "1" showing full author email adresses will be disabled. + If set to "1" showing full author email addresses will be disabled. Default value: "0". noheader:: @@ -372,10 +397,10 @@ side-by-side-diffs:: default. Default value: "0". snapshots:: - Text which specifies the default set of snapshot formats generated by - cgit. 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. + 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 @@ -447,6 +472,10 @@ repo.defbranch:: 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. @@ -516,8 +545,9 @@ repo.readme:: file. Default value: . repo.snapshots:: - A mask of allowed snapshot-formats for this repo, restricted by the - "snapshots" global setting. Default value: . + A mask of snapshot formats for this repo that cgit generates links for, + restricted by the global "snapshots" setting. Default value: + . repo.section:: Override the current section name for this repository. Default value: @@ -547,6 +577,47 @@ 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 @@ -559,6 +630,13 @@ commit filter:: 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 @@ -566,7 +644,32 @@ source filter:: 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: +auth filter:: + The authentication filter receives 11 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 + When the filter action is "body", this filter must write to output the + HTML for displaying the login form, which POSTs to "/?p=login". 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 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) @@ -583,8 +686,8 @@ 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 +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 @@ -611,7 +714,7 @@ EXAMPLE CGITRC FILE ------------------- .... -# Enable caching of up to 1000 output entriess +# Enable caching of up to 1000 output entries cache-size=1000 @@ -622,6 +725,14 @@ clone-url=git://foo.org/$CGIT_REPO_URL git@foo.org:$CGIT_REPO_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 @@ -638,6 +749,10 @@ enable-log-filecount=1 enable-log-linecount=1 +# Sort branches by date +branch-sort=age + + # Add a cgit favicon favicon=/favicon.ico @@ -679,6 +794,47 @@ 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