You are browsing a read-only backup copy of Wikitech. The primary site can be found at wikitech.wikimedia.org

Template:Gitweb/doc

From Wikitech-static
< Template:Gitweb
Revision as of 13:54, 25 June 2019 by imported>CDanis
Jump to navigation Jump to search

This generates a link to a file on Gerrit.

The goal is to avoid ugly URLs like

 https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/examples.git;f=BoilerPlate/README;hb=HEAD

and also future-proof (ha ha) these links against changes and evolution to source code control.

Usage

{{Gitweb |project=mediawiki/extensions/examples |file=Example/Example.php }}

produces

Example/Example.php
{{Gitweb |project=mediawiki/extensions/ArticleFeedback 
|file=modules/jquery.articleFeedback/images/star-new-down.png
|text=star image | action=blob_plain }}

produces

star image
{{Gitweb |project=operations/apache-config|action=summary}}

produces

operations/apache-config

Parameters

project
mandatory. Must be entire path to project — always (?) mediawiki/ , usually extensions, then your project — but not the .git
file
optional. The path within the project.
text
optional. The text that's linked. If not specified, defaults to file and then to project.
action
optional. You can give a gitweb action, such as "summary", "tree", "blob", "blob_plain" (defaults to "blob").
branch
optional. The branch in the git repo, default 'master'.

Issues

  • why does the semicolon in the {{#if: TEST|;need that semicolon|}} test introduce whitespace? (Workaround is to use HTML entity &#59; )
  • action= is gitweb-specific, maybe abstract to format=raw/mimetype/...
<templatedata>

{ "params": { "project": { "label": "Project", "description": "Project (repo) name", "example": "mediawiki/core", "type": "string", "required": true }, "file": { "label": "File", "description": "File name within repo", "example": "doc/README.md", "type": "string" }, "text": { "label": "Link text", "type": "string" }, "branch": { "label": "Git branch (default 'master')", "type": "string" } }, "description": "Adds link to repo/file", "format": "inline" }

</templatedata>