Template:Gitorious source: Difference between revisions
(Full support for aliased and numbered parameters, with examples to demonstrate the capabilities.) |
(Support for the tag parameter.) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
| protocol = https | | protocol = https | ||
| type{{#if:{{{type|}}}||NULL}} = {{{type}}} | | type{{#if:{{{type|}}}||NULL}} = {{{type}}} | ||
| proj | | proj{{#if:{{{proj|{{{p|{{{1|}}}}}}}}}||NULL}} = {{{proj|{{{p|{{{1}}}}}}}}} | ||
| repo | | repo{{#if:{{{repo|{{{r|{{{2|}}}}}}}}}||NULL}} = {{{repo|{{{r|{{{2}}}}}}}}} | ||
| branch{{#if:{{{branch|{{{b|{{{3|}}}}}}}}}||NULL}} = {{{branch|{{{b|{{{3}}}}}}}}} | | branch{{#if:{{{branch|{{{b|{{{3|}}}}}}}}}||NULL}} = {{{branch|{{{b|{{{3}}}}}}}}} | ||
| tag{{#if:{{{tag|}}}||NULL}} = {{{tag}}} | |||
| commit{{#if:{{{commit|{{{c|{{{5|}}}}}}}}}||NULL}} = {{{commit|{{{c|{{{5}}}}}}}}} | |||
| mr{{#if:{{{mr|}}}||NULL}} = {{{mr}}} | |||
| path{{#if:{{{path|{{{f|{{{4|}}}}}}}}}||NULL}} = {{{path|{{{f|{{{4}}}}}}}}} | | path{{#if:{{{path|{{{f|{{{4|}}}}}}}}}||NULL}} = {{{path|{{{f|{{{4}}}}}}}}} | ||
| line{{#if:{{{line|{{{l|}}}}}}||NULL}} = {{{line|{{{l}}}}}} | | line{{#if:{{{line|{{{l|}}}}}}||NULL}} = {{{line|{{{l}}}}}} | ||
| view{{#if:{{{view|{{{v|}}}}}}||NULL}} = {{{view|{{{v}}}}}} | | view{{#if:{{{view|{{{v|}}}}}}||NULL}} = {{{view|{{{v}}}}}} | ||
Line 25: | Line 27: | ||
| go = 1 | | go = 1 | ||
| git = 1 | | git = 1 | ||
| mr = 1 | |||
| examples = | | examples = | ||
=== No parameters === | |||
This is for the Gitorious website. | |||
{{obr}}gitorious source{{cbr}}. | |||
{{gitorious source}}. | |||
{{obr}}gitorious source{{!}}full=1{{cbr}}. | |||
{{gitorious source|full=1}}. | |||
=== The old FlightGear source repository === | === The old FlightGear source repository === | ||
This is for the archived flightgear repository at https://gitorious.org/fg/flightgear.git. The automatically created URL, which is equivalent, should be https://gitorious.org/fg/flightgear?p=fg:flightgear.git;a=summary. | This is for the archived flightgear repository at https://gitorious.org/fg/flightgear.git. The automatically created URL, which is equivalent, should be https://gitorious.org/fg/flightgear?p=fg:flightgear.git;a=summary. | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = flightgear | |||
{{!}} text = The archived flightgear source code repository at Gitorious | {{!}} text = The archived flightgear source code repository at Gitorious | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|text = The archived flightgear source code repository at Gitorious | | proj = fg | ||
| repo = flightgear | |||
| text = The archived flightgear source code repository at Gitorious | |||
}}. | }}. | ||
Line 41: | Line 59: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = fgdata | {{!}} repo = fgdata | ||
{{!}} text = The archived fgdata repository at Gitorious, with full history from 2000-2015 | {{!}} text = The archived fgdata repository at Gitorious, with full history from 2000-2015 | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo = fgdata | | proj = fg | ||
|text = The archived fgdata repository at Gitorious, with full history from 2000-2015 | | repo = fgdata | ||
| text = The archived fgdata repository at Gitorious, with full history from 2000-2015 | |||
}}. | }}. | ||
Line 53: | Line 73: | ||
This is for cloning the historic fgdata repository with <code><nowiki>git clone https://gitorious.org/fg/fgdata.git</nowiki></code>. | This is for cloning the historic fgdata repository with <code><nowiki>git clone https://gitorious.org/fg/fgdata.git</nowiki></code>. | ||
{{obr}}#tag:code {{!}} {{obr}}#tag:nowiki {{!}} | {{obr}}#tag:code {{!}} {{obr}}#tag:nowiki {{!}} {{obr}}gitorious source | ||
{{!}} cmd = git clone | {{!}} cmd = git clone | ||
{{!}} proj = fg | |||
{{!}} repo = fgdata | {{!}} repo = fgdata | ||
{{!}} type = git | {{!}} type = git | ||
{{!}} full = 1 | {{!}} full = 1 | ||
{{cbr}}{{cbr}}{{cbr}}. | |||
{{#tag:code | {{#tag:nowiki | | {{#tag:code | {{#tag:nowiki | {{gitorious source | ||
| cmd = git clone | |||
|cmd = git clone | | proj = fg | ||
|repo = fgdata | | repo = fgdata | ||
|type = git | | type = git | ||
|full = 1 | | full = 1 | ||
}}}}}}. | |||
}} }} | |||
=== File with line number === | === File with line number === | ||
Line 75: | Line 93: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = hoorays-fgdata | {{!}} repo = hoorays-fgdata | ||
{{!}} view = blob | {{!}} view = blob | ||
Line 81: | Line 100: | ||
{{!}} line = 1 | {{!}} line = 1 | ||
{{!}} text = Scripted AI Objects repo | {{!}} text = Scripted AI Objects repo | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo = hoorays-fgdata | | proj = fg | ||
|view = blob | | repo = hoorays-fgdata | ||
|branch = topics/scriptable-ai-submodule | | view = blob | ||
|path = Nasal/ai/ai.nas | | branch = topics/scriptable-ai-submodule | ||
|line = 1 | | path = Nasal/ai/ai.nas | ||
|text = Scripted AI Objects repo | | line = 1 | ||
}} | | text = Scripted AI Objects repo | ||
}}. | |||
=== File prefixed with $NASAL_SRC === | === File prefixed with $NASAL_SRC === | ||
Line 96: | Line 116: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = hoorays-fgdata | {{!}} repo = hoorays-fgdata | ||
{{!}} view = blob | {{!}} view = blob | ||
Line 102: | Line 123: | ||
{{!}} pre = $NASAL_SRC | {{!}} pre = $NASAL_SRC | ||
{{!}} simplepath = 1 | {{!}} simplepath = 1 | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo = hoorays-fgdata | | proj = fg | ||
|view = blob | | repo = hoorays-fgdata | ||
|branch = topics/scriptable-ai-submodule | | view = blob | ||
|path = Nasal/ai/ai.nas | | branch = topics/scriptable-ai-submodule | ||
|pre = $NASAL_SRC | | path = Nasal/ai/ai.nas | ||
|simplepath = 1 | | pre = $NASAL_SRC | ||
}} | | simplepath = 1 | ||
}}. | |||
===== Raw view ===== | ===== Raw view ===== | ||
Line 124: | Line 146: | ||
{{!}} path = Nasal/ai/ai.nas | {{!}} path = Nasal/ai/ai.nas | ||
{{!}} full = 1 | {{!}} full = 1 | ||
{{cbr}} | {{cbr}}. | ||
{{repo link | {{repo link | ||
|site = gito | | site = gito | ||
|proj = fg | | proj = fg | ||
|repo = hoorays-fgdata | | repo = hoorays-fgdata | ||
|view = raw | | view = raw | ||
|branch = topics/scriptable-ai-submodule | | branch = topics/scriptable-ai-submodule | ||
|path = Nasal/ai/ai.nas | | path = Nasal/ai/ai.nas | ||
|full = 1 | | full = 1 | ||
}} | }}. | ||
=== Commit === | === Commit === | ||
Line 145: | Line 167: | ||
{{!}} commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | {{!}} commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | ||
{{!}} pre = $NASAL_SRC | {{!}} pre = $NASAL_SRC | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|proj = nasal-standalone | | proj = nasal-standalone | ||
|repo = nasal-experiments | | repo = nasal-experiments | ||
|view = commit | | view = commit | ||
|commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | | commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | ||
|pre = $NASAL_SRC | | pre = $NASAL_SRC | ||
}} | }}. | ||
=== Commitdiff === | === Commitdiff === | ||
Line 163: | Line 185: | ||
{{!}} view = commitdiff | {{!}} view = commitdiff | ||
{{!}} commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | {{!}} commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | ||
{{cbr}}. | |||
{{cbr}} | |||
{{gitorious source | {{gitorious source | ||
|proj = nasal-standalone | | proj = nasal-standalone | ||
|repo = nasal-experiments | | repo = nasal-experiments | ||
|view = commitdiff | | view = commitdiff | ||
|commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | | commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | ||
}}. | |||
}} | |||
=== Main views === | === Main views === | ||
Line 179: | Line 199: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = fgdata | {{!}} repo = fgdata | ||
{{!}} view = summary | {{!}} view = summary | ||
{{!}} full = 1 | {{!}} full = 1 | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo = fgdata | | proj = fg | ||
|view = summary | | repo = fgdata | ||
|full = 1 | | view = summary | ||
}} | | full = 1 | ||
}}. | |||
==== Shortlog view ==== | ==== Shortlog view ==== | ||
Line 194: | Line 216: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = fgdata | {{!}} repo = fgdata | ||
{{!}} view = shortlog | {{!}} view = shortlog | ||
{{!}} full = 1 | {{!}} full = 1 | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo | | proj = fg | ||
|view | | repo = fgdata | ||
|full | | view = shortlog | ||
}} | | full = 1 | ||
}}. | |||
==== Log view ==== | ==== Log view ==== | ||
Line 209: | Line 233: | ||
{{obr}}gitorious source | {{obr}}gitorious source | ||
{{!}} proj = fg | |||
{{!}} repo = fgdata | {{!}} repo = fgdata | ||
{{!}} view = log | {{!}} view = log | ||
{{!}} commit = 4c03a4968d2844c9c8ba734116da3478a1bebb38 | {{!}} commit = 4c03a4968d2844c9c8ba734116da3478a1bebb38 | ||
{{!}} full = 1 | {{!}} full = 1 | ||
{{cbr}} | {{cbr}}. | ||
{{gitorious source | {{gitorious source | ||
|repo = fgdata | | proj = fg | ||
|view = log | | repo = fgdata | ||
|commit = 4c03a4968d2844c9c8ba734116da3478a1bebb38 | | view = log | ||
|full = 1 | | commit = 4c03a4968d2844c9c8ba734116da3478a1bebb38 | ||
}} | | full = 1 | ||
}}. | |||
=== Abbreviated parameters === | === Abbreviated parameters === | ||
Line 253: | Line 279: | ||
{{gitorious source | fg | hoorays-fgdata | topics/scriptable-ai-submodule | Nasal/ai/ai.nas | l = 1 | v = blob | t = Scripted AI Objects repo | full = 1 }}. | {{gitorious source | fg | hoorays-fgdata | topics/scriptable-ai-submodule | Nasal/ai/ai.nas | l = 1 | v = blob | t = Scripted AI Objects repo | full = 1 }}. | ||
=== Merge request === | |||
This is for https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=commit;h=refs/merge-requests/190. | |||
{{obr}}gitorious source | |||
{{!}} proj = fg | |||
{{!}} repo = fgdata | |||
{{!}} view = commit | |||
{{!}} mr = merge-requests/190 | |||
{{cbr}}. | |||
{{gitorious source | |||
| proj = fg | |||
| repo = fgdata | |||
| view = commit | |||
| mr = 190 | |||
}}. | |||
Or as a URL: | |||
{{obr}}gitorious source | |||
{{!}} proj = fg | |||
{{!}} repo = fgdata | |||
{{!}} view = commit | |||
{{!}} mr = merge-requests/190 | |||
{{!}} full = 1 | |||
{{cbr}}. | |||
{{gitorious source | |||
| proj = fg | |||
| repo = fgdata | |||
| view = commit | |||
| mr = 190 | |||
| full = 1 | |||
}}. | |||
}}</noinclude> | }}</noinclude> |
Latest revision as of 13:52, 13 April 2016
Note The Gitorious open source infrastructure is locked in a read-only archived state. |
Goal
This template is for creating links or URLs for the content of the version control repositories of the Gitorious open source infrastructure. It is a subtemplate of the master {{repo link}} template designed to be specific for the Gitorious repositories.
Usage
{{gitorious source | cmd = | opt = | type = | proj = | repo = | branch = | tag = | commit = | mr = | path = | line = | post = | view = | text = | pre = | simplepath = | full = }}
The proj parameter, as well as the repo parameter, must be supplied. All other parameters are optional.
Parameter | Description | Abbreviated parameter |
Numbered parameter |
Status |
---|---|---|---|---|
cmd | An optional command line tool name + options to prepend to the URL. For example git clone. | optional | ||
opt | Any additional options to show after cmd, but before the URL.
|
optional | ||
type | Choose between the web interface or a direct repository link. This can be one of git, git web. The default is git web. | optional | ||
proj | The name of the project, consisting of a grouping of repositories on the open source infrastructure. | p | 1 | mandatory |
repo | The name of the repository. A project registered on one of the open source infrastructures generally allows for multiple repositories under that project name. | r | 2 | mandatory |
branch | The branch name. This defaults to next. | b | 3 | optional |
tag | The repository tag name. | optional | ||
commit | The commit identifier (git hash). This defaults to HEAD. | c | 5 | optional |
mr | The merge request number. If provided and if the other parameters are present, this overrides any commit, tag, or branch parameter values. | optional | ||
path | The file or directory path. | f | 4 | optional |
line | The line number(s) of the file to display. | l | optional | |
post | Text to append. This is forms a set with the parameter cmd and opt. For example it can represent any command line options that come after the URL. | optional | ||
view | View to display:
|
v | optional | |
text | Text to display as the link label. Overrides pre. | t | optional | |
pre | Prefix to a link label. | optional | ||
simplepath | If set, this strips off the repository name from the URL label, leaving just the contents of the path parameter.
|
optional | ||
full | If set to 1, the full URL will be shown rather than any text label. | optional |
Design
In this section, the following notation will be used:
- Angular brackets + lower case text
<xyz>
- Template parameters.
- Angular brackets + upper case text
<XYZ>
- Template constructed text.
- Square brackets
[xyz]
- Optional text, only added if the parameter is set.
- Or symbol
|
- The value on the left, if present, otherwise the value on the right of the symbol.
Overview
The general design is:
<cmd> <opt> [<URL> <TEXT>] <post>
Here the square brackets do not denote optional text, but will instead produce a Mediawiki link. This can be modified by setting full = 1 to produce:
<cmd> <opt> <URL> <post>
Site: Gitorious
The Gitorious URLs are predominantly query rather than path based. And only the https://
protocol is supported. The base URL constructed by this template is:
<protocol>://gitorious.org/<proj>/<repo>
Gitorious <URL> for 'type=git'
For this parameter value, the complete <URL>
value will be:
<protocol>://gitorious.org/<proj>/<repo>.git
Gitorious <URL> for 'type=git web'
As the current archival system is based on queries — the text after the ?
character — absolutely any random path after the gitorious.org/
domain name can be used. But, for aesthetics, the project and repository name will be appended by this template. The <URL>
will be:
<protocol>://gitorious.org/<proj>/<repo>?<QUERY>[#l<line>]
The <QUERY>
string consists of parts for the project and repository (p=
), the type of view (a=
), the path (f=
), and the commit, branch or tag (h=
or hb=
, depending on the view).
The <URL>
fragment for the project and repository is constructed as:
<protocol>://gitorious.org/<proj>/<repo>?p=<proj>:<repo>.git
The <URL>
fragment for the view is constructed as:
<protocol>://gitorious.org/<proj>/<repo>?a=<VIEW>
Where <VIEW>
is the value of the view parameter, if supplied, with the value of raw translated to blob_plain
. If not supplied, the value of blob
is used if path is given, commit
if commit is given, or summary
otherwise.
The <URL>
fragment for the path is constructed as:
<protocol>://gitorious.org/<proj>/<repo>?f=<path>
If the view parameter is set to one of blob, raw, or tree, the <URL>
fragment for the commit, branch or tag is constructed as:
<protocol>://gitorious.org/<proj>/<repo>[?hb=refs/merge-requests/<mr>|<commit>|refs/heads/<branch>]
Otherwise it will be:
<protocol>://gitorious.org/<proj>/<repo>[?h=refs/merge-requests/<mr>|<commit>|refs/heads/<branch>]
In summary, the full web URL will be:
<protocol>://gitorious.org/<proj>/<repo>?p=<proj>:<repo>.git;a=<VIEW>[;f=<path>][;<h|hb>=refs/merge-requests/<mr>|<commit>|refs/heads/<branch>][#l<line>]
Gitorious URL <TEXT>
The link text <TEXT>
, if the full parameter is not set, will be:
<proj>/<repo>/<commit|branch|HEAD>[/<path>][#l<line>]
If the simplepath parameter is set, this changes to:
[/<path>][#l<line>]
If the pre parameter is supplied, this changes to:
<pre>[/<path>][#l<line>]
The text parameter trumps all, and <TEXT>
is simply:
<text>
Plain text
To create a URL or link as plain text and avoid external links, simply use the {{#tag:tagname|content}}
magic word construct:
{{#tag:nowiki| {{repo link | full = 1 }} }}
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/
To use the <code> tags:
{{#tag:code|{{#tag:nowiki| {{repo link | full = 1 }} }}}}
https://sourceforge.net/p/flightgear/flightgear/ci/next/tree/
Examples
No parameters
This is for the Gitorious website.
{{gitorious source}}.
{{gitorious source|full=1}}.
The old FlightGear source repository
This is for the archived flightgear repository at https://gitorious.org/fg/flightgear.git. The automatically created URL, which is equivalent, should be https://gitorious.org/fg/flightgear?p=fg:flightgear.git;a=summary.
{{gitorious source | proj = fg | repo = flightgear | text = The archived flightgear source code repository at Gitorious }}.
The archived flightgear source code repository at Gitorious.
The historic fgdata repository
This is for the historic repository https://gitorious.org/fg/fgdata.git. The automatically created URL, which is equivalent, should be https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=summary.
{{gitorious source | proj = fg | repo = fgdata | text = The archived fgdata repository at Gitorious, with full history from 2000-2015 }}.
The archived fgdata repository at Gitorious, with full history from 2000-2015.
Git clone
This is for cloning the historic fgdata repository with git clone https://gitorious.org/fg/fgdata.git
.
{{#tag:code | {{#tag:nowiki | {{gitorious source | cmd = git clone | proj = fg | repo = fgdata | type = git | full = 1 }}}}}}.
git clone https://gitorious.org/fg/fgdata.git
.
File with line number
{{gitorious source | proj = fg | repo = hoorays-fgdata | view = blob | branch = topics/scriptable-ai-submodule | path = Nasal/ai/ai.nas | line = 1 | text = Scripted AI Objects repo }}.
File prefixed with $NASAL_SRC
{{gitorious source | proj = fg | repo = hoorays-fgdata | view = blob | branch = topics/scriptable-ai-submodule | path = Nasal/ai/ai.nas | pre = $NASAL_SRC | simplepath = 1 }}.
Raw view
{{repo link | site = gito | proj = fg | repo = hoorays-fgdata | view = raw | branch = topics/scriptable-ai-submodule | path = Nasal/ai/ai.nas | full = 1 }}.
Commit
{{gitorious source | proj = nasal-standalone | repo = nasal-experiments | view = commit | commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 | pre = $NASAL_SRC }}.
Commitdiff
{{gitorious source | proj = nasal-standalone | repo = nasal-experiments | view = commitdiff | commit = 9b2d59c316d03b83cfb4352a38b865aa29f4c280 }}.
gitorious/nasal-standalone/nasal-experiments/9b2d59c316d03b83cfb4352a38b865aa29f4c280.
Main views
Summary view
This is for https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=summary.
{{gitorious source | proj = fg | repo = fgdata | view = summary | full = 1 }}.
https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=summary.
Shortlog view
This is for https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=shortlog.
{{gitorious source | proj = fg | repo = fgdata | view = shortlog | full = 1 }}.
https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=shortlog.
Log view
This is for https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=log;h=4c03a4968d2844c9c8ba734116da3478a1bebb38.
{{gitorious source | proj = fg | repo = fgdata | view = log | commit = 4c03a4968d2844c9c8ba734116da3478a1bebb38 | full = 1 }}.
https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=log;h=4c03a4968d2844c9c8ba734116da3478a1bebb38.
Abbreviated parameters
{{gitorious source | p = fg | r = hoorays-fgdata | b = topics/scriptable-ai-submodule | f = Nasal/ai/ai.nas | l = 1 | v = blob | t = Scripted AI Objects repo | full = 1 }}.
https://gitorious.org/fg/hoorays-fgdata?p=fg:hoorays-fgdata.git;a=blob;f=Nasal/ai/ai.nas;hb=refs/heads/topics/scriptable-ai-submodule#l1 Scripted AI Objects repo.
Numbered parameters
{{gitorious source | fg | hoorays-fgdata | topics/scriptable-ai-submodule | Nasal/ai/ai.nas | l = 1 | v = blob | t = Scripted AI Objects repo | full = 1 }}.
https://gitorious.org/fg/hoorays-fgdata?p=fg:hoorays-fgdata.git;a=blob;f=Nasal/ai/ai.nas;hb=refs/heads/topics/scriptable-ai-submodule#l1 Scripted AI Objects repo.
Merge request
This is for https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=commit;h=refs/merge-requests/190.
{{gitorious source | proj = fg | repo = fgdata | view = commit | mr = merge-requests/190 }}.
gitorious/fg/fgdata/merge-requests/190.
Or as a URL:
{{gitorious source | proj = fg | repo = fgdata | view = commit | mr = merge-requests/190 | full = 1 }}.
https://gitorious.org/fg/fgdata?p=fg:fgdata.git;a=commit;h=refs/merge-requests/190.
Related templates
|