您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Make pull request branches linkable
- // ==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==
- /* eslint security/detect-object-injection: "off" */
- (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);
- })();