Diffstat (limited to 'cgitrc.5.txt')
| -rw-r--r-- | cgitrc.5.txt | 481 |
1 files changed, 87 insertions, 394 deletions
diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 527233d..633cb00 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -42,85 +42,52 @@ agefile:: 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-about-ttl:: +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 the repository about page. See also: "CACHE". Default - value: "15". + 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. See also: - "CACHE". 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. See also: "CACHE". Default - value: "5". - -cache-root:: - Path used to store the cgit cache entries. Default value: - "/var/cache/cgit". See also: "MACRO EXPANSION". + 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. See also: "CACHE". 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. See also: "CACHE". Default - value: "15". - -case-sensitive-sort:: - Sort items in the repo list case sensitively. Default value: "1". - See also: repository-sort, section-sort. + of scanning a path for git repositories. Negative values have infinite + ttl. Default value: "15". -cache-size:: - The maximum number of entries in the cgit cache. When set to "0", - caching is disabled. See also: "CACHE". Default value: "0" - -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-static-ttl:: +cache-about-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". - -ci-branch-url:: - Url template used by the "ci" tab when a branch is being viewed. If - unspecified, `ci-url` is used instead. Default value: none. See also: - "CI URL EXPANSION". + version of the repository about page. Negative values have infinite + ttl. Default value: "15". -ci-filter:: - Specifies a command which decides whether the "ci" tab is shown for - the ref currently being viewed, which is useful when only some refs - have a pipeline. Default value: none. See also: "FILTER API". - -ci-tag-url:: - Url template used by the "ci" tab when a tag is being viewed. If - unspecified, `ci-url' is used instead. Default value: none. See also: - "CI URL EXPANSION". +cache-size:: + The maximum number of entries in the cgit cache. Default value: "0" + (i.e. caching is disabled). -ci-url:: - Url template used by the "ci" tab for refs which are not covered by - `ci-branch-url` or `ci-tag-url`. When at least one of the three ci url - settings is specified, cgit adds a "ci" tab which redirects to the - expanded url for the ref currently being viewed. Default value: none. - See also: "CI URL EXPANSION". +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 @@ -148,27 +115,13 @@ commit-sort:: css:: Url which specifies the css document to include in all cgit pages. - Default value: "/cgit.css". May be given multiple times, each - css URL path is added in the head section of the document in turn. - -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". + Default value: "/cgit.css". 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-blame:: - Flag which, when set to "1", will allow cgit to provide a "blame" page - for files, and will make it generate links to that page in appropriate - places. Default value: "0". - 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 @@ -178,32 +131,10 @@ 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-follow-links:: - Flag which, when set to "1", allows users to follow a file in the log - view. Default value: "0". - -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, gitweb.description, - and gitweb.homepage will map to the cgit keys repo.owner, repo.section, - repo.desc, and repo.homepage 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. - enable-http-clone:: - If set to "1", cgit will act as a 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-html-serving:: - Flag which, when set to "1", will allow the /plain handler to serve - mimetype headers that result in the file being treated as HTML by the - browser. When set to "0", such file types are returned instead as - text/plain or application/octet-stream. Default value: "0". See also: - "repo.enable-html-serving". + 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". enable-index-links:: Flag which, when set to "1", will make cgit generate extra links for @@ -239,15 +170,20 @@ 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, + respectivly. 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 - always include the value "/favicon.ico" since certain browsers will - ignore other values. May be given multiple times, each favicon URL - path is added in the head section of the document in turn, letting - the browser pick the icon it prefers. The mimetype of each icon is - deduced from the extension of its url ("ico", "png", "svg", "gif", - "jpg", "jpeg", "webp" and "avif" are recognized) and emitted as a - "type" attribute. Default value: "/favicon.svg", "/favicon.ico". + 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 @@ -266,10 +202,17 @@ include:: Name of a configfile to include before the rest of the current config- file is parsed. Default value: none. See also: "MACRO EXPANSION". -js:: - Url which specifies the javascript script document to include in all cgit - pages. Default value: "/cgit.js". Setting this to an empty string will - disable generation of the link to this file in the head section. +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 @@ -277,7 +220,7 @@ local-time:: logo:: Url which specifies the source of an image which will be used as a logo - on all cgit pages. Default value: "/cgit.svg". + on all cgit pages. Default value: "/cgit.png". logo-link:: Url loaded when clicking on the cgit logo image. If unspecified the @@ -288,10 +231,6 @@ max-atom-items:: Specifies the number of items to display in atom feeds view. Default value: "10". -max-blob-size:: - Specifies the maximum size of a blob to display HTML for in KBytes. - Default value: "0" (limit disabled). - max-commit-count:: Specifies the number of entries to list per page in "log" view. Default value: "50". @@ -302,13 +241,16 @@ max-message-length:: max-repo-count:: Specifies the number of entries to list per page on the repository - index page. The value "0" shows all repositories without limitation. - Default value: "50". + 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 @@ -336,6 +278,11 @@ module-link:: 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". @@ -344,15 +291,6 @@ noheader:: Flag which, when set to "1", will make cgit omit the standard header on all pages. Default value: none. See also: "embedded". -owner-filter:: - Specifies a command which will be invoked to format the Owner - column of the main page. The command will get the owner on STDIN, - and the STDOUT from the command will be included verbatim in the - table. This can be used to link to additional context such as an - owners home page. When active this filter is used instead of the - default owner query url. Default value: none. - See also: "FILTER API". - 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 @@ -376,6 +314,10 @@ renamelimit:: "-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 @@ -439,14 +381,10 @@ side-by-side-diffs:: 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.lz", "tar.xz", - "tar.zst" and "zip". The special value "all" enables all snapshot - formats. Default value: none. - All compressors use default settings. Some settings can be influenced - with environment variables, for example set ZSTD_CLEVEL=10 in web - server environment for higher (but slower) zstd compression. + 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. source-filter:: Specifies a command which will be invoked to format plaintext blobs @@ -495,22 +433,6 @@ repo.branch-sort:: list, and when set to "name" enables ordering by branch name. Default value: "name". -repo.ci-branch-url:: - Override the global setting `ci-branch-url' for this repository. - Default value: <ci-branch-url>. See also: "CI URL EXPANSION". - -repo.ci-filter:: - Override the default ci-filter. Default value: none. See also: - "enable-filter-overrides". See also: "FILTER API". - -repo.ci-tag-url:: - Override the global setting `ci-tag-url' for this repository. Default - value: <ci-tag-url>. See also: "CI URL EXPANSION". - -repo.ci-url:: - Override the global setting `ci-url' for this repository. Default - value: <ci-url>. See also: "CI URL EXPANSION". - repo.clone-url:: A list of space-separated urls which can be used to clone this repo. Default value: none. See also: "MACRO EXPANSION". @@ -534,26 +456,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-blame:: - A flag which can be used to disable the global setting - `enable-blame'. Default value: none. - repo.enable-commit-graph:: A flag which can be used to disable the global setting `enable-commit-graph'. Default value: none. -repo.enable-follow-links:: - A flag which can be used to disable the global setting - `enable-follow-links'. Default value: none. - -repo.enable-html-serving:: - A flag which can be used to override the global setting - `enable-html-serving`. Default value: none. - repo.enable-log-filecount:: A flag which can be used to disable the global setting `enable-log-filecount'. Default value: none. @@ -570,23 +476,6 @@ repo.enable-subject-links:: A flag which can be used to override the global setting `enable-subject-links'. Default value: none. -repo.extra-head-content:: - This value will be added verbatim to the head section of each page - displayed for this repo. Default value: none. - -repo.hide:: - Flag which, when set to "1", hides the repository from the repository - index. The repository can still be accessed by providing a direct path. - Default value: "0". See also: "repo.ignore". - -repo.homepage:: - The value to show as repository homepage. Default value: none. - -repo.ignore:: - Flag which, when set to "1", ignores the repository. The repository - is not shown in the index and cannot be accessed by providing a direct - path. Default value: "0". See also: "repo.hide". - 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. @@ -620,10 +509,6 @@ repo.owner:: A value used to identify the owner of the repository. Default value: none. -repo.owner-filter:: - Override the default owner-filter. Default value: none. See also: - "enable-filter-overrides". See also: "FILTER API". - repo.path:: An absolute path to the repository directory. For non-bare repositories this is the .git-directory. Default value: none. @@ -633,28 +518,20 @@ repo.readme:: 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 head giving in query or - 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>. + 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 allowed snapshot-formats for this repo, restricted by the + "snapshots" global setting. Default value: <snapshots>. repo.section:: Override the current section name for this repository. Default value: none. -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.snapshot-prefix:: - Prefix to use for snapshot links instead of the repository basename. - For example, the "linux-stable" repository may wish to set this to - "linux" so that snapshots are in the format "linux-3.15.4" instead - of "linux-stable-3.15.4". Default value: <empty> meaning to use - the repository basename. - repo.source-filter:: Override the default source-filter. Default value: none. See also: "enable-filter-overrides". See also: "FILTER API". @@ -679,47 +556,6 @@ 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 @@ -727,63 +563,11 @@ about filter:: The about text that is to be filtered is available on standard input and the filtered text 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 response, 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. - -ci filter:: - This filter is given three parameters: the name of the branch or tag - being viewed, the string "branch" or "tag" to say which of the two it - is, and the ci url that the "ci" tab would redirect to. It decides - whether that tab is shown at all, by returning zero from the exit code - / close function to show it and non-zero to hide it. Nothing is written - to its standard input, and it must not write to standard output, since - that would land in the middle of the page being rendered. - - The filter is consulted while rendering every page of the repository, - not only ref pages, so a filter which contacts the ci system should - cache its verdict and use a short timeout. Please see - `filters/ci-jenkins.sh` for an example. - 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 relevant - 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. - -owner filter:: - This filter is given no arguments. The owner text is available on - standard input and the filter is expected to write to standard - output. The output is included in the Owner column. - 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 @@ -791,8 +575,7 @@ source filter:: file that is to be filtered is available on standard input and the filtered contents is expected on standard output. - -All filters are handed the following environment variables: +Also, all filters are handed the following environment variables: - CGIT_REPO_URL (from repo.url) - CGIT_REPO_NAME (from repo.name) @@ -809,8 +592,8 @@ 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 +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 @@ -833,103 +616,19 @@ the environment variables defined in "FILTER API": - repo.clone-url -CI URL EXPANSION ----------------- -The options `ci-url', `ci-branch-url' and `ci-tag-url' (and their -`repo.'-prefixed counterparts) are url templates in which the following -tokens are substituted when the "ci" tab is followed: - -$ref:: - The name of the branch or tag currently being viewed. - -$repo:: - The url of the repository, i.e. the value of `repo.url'. - -$slug:: - $repo with any ".git" suffix removed and all slashes replaced by - dashes, e.g. "sayauz/web.git" becomes "sayauz-web". - -Two consecutive dollar signs produce a single literal one, and any other -"$" is left untouched. Tokens are substituted verbatim, so the resulting -url must already be properly encoded. - -When a tag is being viewed, `ci-tag-url' is used; for anything else -`ci-branch-url' is used. Whichever of the two applies falls back to -`ci-url' when it is unset, and the "ci" tab yields "404 Not found" when -neither is set for the current ref. This makes it possible to point at a -Jenkins multibranch pipeline, where branches and tags live at different -locations: - - ci-branch-url=https://ci.example.org/job/$slug/job/$ref - ci-tag-url=https://ci.example.org/job/$slug/view/tags/job/$ref - -Setting `repo.ci-url' discards the values which the repository would -otherwise inherit from the global `ci-branch-url' and `ci-tag-url', so -that a single repository can be pointed at a different ci system without -having to override both of them. - -Note that cgit itself never contacts the ci system, so a tab shown for a -ref which has no pipeline only reveals that after being followed. Use -`ci-filter' to suppress the tab in that case. - - -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. - -SIGNATURES ----------- - -Cgit can host .asc signatures corresponding to various snapshot formats, -through use of git notes. For example, the following command may be used to -add a signature to a .tar.xz archive: - - git notes --ref=refs/notes/signatures/tar.xz add -C "$( - gpg --output - --armor --detach-sign cgit-1.1.tar.xz | - git hash-object -w --stdin - )" v1.1 - -If it is instead desirable to attach a signature of the underlying .tar, this -will be linked, as a special case, beside a .tar.* link that does not have its -own signature. For example, a signature of a tarball of the latest tag might -be added with a similar command: - - tag="$(git describe --abbrev=0)" - git notes --ref=refs/notes/signatures/tar add -C "$( - git archive --format tar --prefix "cgit-${tag#v}/" "$tag" | - gpg --output - --armor --detach-sign | - git hash-object -w --stdin - )" "$tag" - -Since git-archive(1) is expected to produce stable output between versions, -this allows one to generate a long-term signature of the contents of a given -tag. - EXAMPLE CGITRC FILE ------------------- .... -# Enable caching of up to 1000 output entries +# Enable caching of up to 1000 output entriess 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 -css=/css/solarized.css - - -# Add a "ci" tab pointing at a Jenkins multibranch pipeline -ci-branch-url=https://ci.foo.org/job/$slug/job/$ref -ci-tag-url=https://ci.foo.org/job/$slug/view/tags/job/$ref # Show owner on index page @@ -937,17 +636,13 @@ enable-index-owner=1 # Allow http transport git clone -enable-http-clone=1 +enable-git-clone=1 # Show extra links for each repository on the index page enable-index-links=1 -# Enable blame page and create links to it from tree page -enable-blame=1 - - # Enable ASCII art commit history graph on the log pages enable-commit-graph=1 @@ -964,8 +659,7 @@ enable-log-linecount=1 branch-sort=age -# Add cgit favicons -favicon=/favicon.svg +# Add a cgit favicon favicon=/favicon.ico @@ -1006,7 +700,7 @@ mimetype.png=image/png mimetype.svg=image/svg+xml -# Highlight source code with python pygments-based highlighter +# Highlight source code with python pygments-based highligher source-filter=/var/www/cgit/filters/syntax-highlighting.py # Format markdown, restructuredtext, manpages, text files, and html files @@ -1125,4 +819,3 @@ AUTHOR ------ Lars Hjemli <hjemli@gmail.com> Jason A. Donenfeld <Jason@zx2c4.com> -Saya Andy <saya.andy@posteo.com> |