Github Pull Request From Link

Make pull request branches linkable

От 01.02.2024. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name            Github Pull Request From Link
// @namespace       https://github.com/jerone/UserScripts/
// @description     Make pull request branches linkable
// @author          jerone
// @copyright       2014+, jerone (https://github.com/jerone)
// @license         CC-BY-NC-SA-4.0; https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode
// @license         GPL-3.0-or-later; http://www.gnu.org/licenses/gpl-3.0.txt
// @homepage        https://github.com/jerone/UserScripts/tree/master/Github_Pull_Request_From
// @homepageURL     https://github.com/jerone/UserScripts/tree/master/Github_Pull_Request_From
// @supportURL      https://github.com/jerone/UserScripts/issues
// @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=VCYMHWQ7ZMBKW
// @icon            https://github.githubassets.com/pinned-octocat.svg
// @version         20.1
// @grant           none
// @include         https://github.com/*/pull/*
// @exclude         https://github.com/*/*.diff
// @exclude         https://github.com/*/*.patch
// ==/UserScript==

(function () {

	String.format = function (string) {
		var args = Array.prototype.slice.call(arguments, 1, arguments.length);
		return string.replace(/{(\d+)}/g, function (match, number) {
			return typeof args[number] !== 'undefined' ? args[number] : match;
		});
	};

	function init() {
		Array.prototype.filter.call(document.querySelectorAll('.commit-ref[title], .base-ref[title], .head-ref[title]'), function (treeSpan) {
			return !treeSpan.querySelector('.unknown-repo');
		}).forEach(function (treeSpan) {
			const [repo, branch] = treeSpan.title.split(':');
			var treeParts = treeSpan.querySelectorAll('.css-truncate-target');
			var treeLink = document.createElement('a');

			// Show underline on hover.
			Array.prototype.forEach.call(treeParts, function (part) {
				part.style.display = 'inline';
			});

			treeLink.setAttribute('href', String.format('/{0}/tree/{1}', repo, branch));
			treeLink.innerHTML = treeSpan.innerHTML;
			treeSpan.innerHTML = '';
			treeSpan.appendChild(treeLink);
		});
	}

	// Page load.
	init();

	// On pjax.
	document.addEventListener('pjax:end', init);

})();