Jump to content

Manual:$wgGitRepositoryViewers

From mediawiki.org
Maintenance scripts setting: $wgGitRepositoryViewers
Map of Git repository URLs to their gitweb interface URLs
Introduced in version:1.20.0 (Gerrit change 6776; git #8bab490d)
Removed in version:Still in use
Allowed values:(array)
Default value:(see below)

Details

[edit]

Maps Git repository URLs to viewer URLs to provide links in Special:Version. Special:Version looks up git remote configuration and identifies a correct git remote entry for the branch of code that is currently being run.

This URL needs to be converted in to the gitweb interface URL (if available), so that git revision identifiers (in the form of SHA-1 hash) can be linked to the repository viewer.

This variable is an array of (key, value) pairs, the key is used to look up the git remote entry URL. The key is a pattern passed to preg_match() and preg_replace(), without the delimiters (which are #) and must match the whole URL.

The value is a pattern to obtain a correct URL for the gitweb interface. The value is the regular expression replacement for the key (it can contain $1, etc.). %h will be replaced by the short SHA-1 (7 first chars) and %H by the full SHA-1 of the HEAD revision.

Default value

[edit]
MediaWiki version:
1.31
$wgGitRepositoryViewers = [
	'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' => 'https://gerrit.wikimedia.org/g/%R/+/%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 'https://gerrit.wikimedia.org/g/%R/+/%H',
];
MediaWiki versions:
1.27 – 1.30
$wgGitRepositoryViewers = [
	'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
		'https://phabricator.wikimedia.org/r/revision/%R;%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
		'https://phabricator.wikimedia.org/r/revision/%R;%H',
];
MediaWiki versions:
1.24 – 1.26
$wgGitRepositoryViewers = array(
	'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
		'https://git.wikimedia.org/tree/%r/%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
		'https://git.wikimedia.org/tree/%r/%H',
);
MediaWiki version:
1.23
$wgGitRepositoryViewers = array(
	'https://(?:[a-z0-9_]+@)?gerrit.wikimedia.org/r/(?:p/)?(.*)' =>
		'https://git.wikimedia.org/commit/%r/%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' =>
		'https://git.wikimedia.org/commit/%r/%H',
);
MediaWiki version:
1.22
$wgGitRepositoryViewers = array(
	'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://git.wikimedia.org/commit/%r/%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)'
		=> 'https://git.wikimedia.org/commit/%r/%H',
);
MediaWiki versions:
1.20 – 1.21
$wgGitRepositoryViewers = array(
	'https://gerrit.wikimedia.org/r/p/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H',
	'ssh://(?:[a-z0-9_]+@)?gerrit.wikimedia.org:29418/(.*)' => 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H',
);

Example

[edit]

If you have the following entry in .ssh/config (as described in Setup SSH shortcut):

Host review
Hostname gerrit.wikimedia.org
Port 29418
User username

And if your git remote used to fetch MediaWiki is configured in the following way in .git/config:

[remote "review"]
	url = ssh://review/mediawiki/core.git
	fetch = +refs/heads/*:refs/remotes/review/*

then this entry in LocalSettings.php will make ssh://review/mediawiki/core.git URL to be recognized as pointing to the Wikimedia git repository:

$wgGitRepositoryViewers['ssh://(?:[a-z0-9_]+@)?review/(.*)'] = 'https://gerrit.wikimedia.org/r/gitweb?p=$1;h=%H';

GitHub

[edit]

When using extensions that are maintained at GitHub, you can use this to link them.

$wgGitRepositoryViewers['https://github.com/(.*?)(.git)?'] = 'https://github.com/$1/commit/%H';