Gitlab raw commit adder

Replace the mangled commit message with the full patch, which is in general more useful to the experienced git user than the web UI, where you have to change views multiple time to see the contents of a commit and it's impossible to get the raw patch (other than appending .patch to the URL).

K instalaci tototo skriptu si budete muset nainstalovat rozšíření jako Tampermonkey, Greasemonkey nebo Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Violentmonkey.

K instalaci tohoto skriptu si budete muset nainstalovat rozšíření jako Tampermonkey nebo Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

K instalaci tohoto skriptu si budete muset nainstalovat manažer uživatelských skriptů.

(Už mám manažer uživatelských skriptů, nechte mě ho nainstalovat!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Už mám manažer uživatelských stylů, nechte mě ho nainstalovat!)

// ==UserScript==
// @name     Gitlab raw commit adder
// @description Replace the mangled commit message with the full patch, which is in general more useful to the experienced git user than the web UI, where you have to change views multiple time to see the contents of a commit and it's impossible to get the raw patch (other than appending .patch to the URL).
// @version  1.2
// @include  /^https://gitlab.com/.*/commit/[0-9A-Fa-f]{6}[0-9A-Fa-f]*$/
// @icon     https://git-scm.com/favicon.ico
// @grant    none
// @namespace de.hostalia.user-scripts
// @license  GPL-2.0
// ==/UserScript==
// Copyright 2022 Marcus Müller <[email protected]>
// SPDX-License-Identifier: GPL-2.0
/*
 * CHANGELOG
 * 1.0: initial release
 * 1.2: shorten to message by default, allow display of full commit on clicking
 */
var url = document.documentURI + '.patch';

fetch(url)
  .then(function(response) {
      response.text().then(function(text) {
      done(text);
    });
  });

function done(text) {
    var elem = document.querySelector(".commit-description");
    if(elem !== undefined) {
        elem = document.createElement("pre");
        elem.classList.add("commit-description");
        document.querySelector(".commit-box").appendChild(elem);
    }
    var position = text.indexOf("\n---\n");
    var shorttext = text;
    var fulltext = text;
    if(position !== -1) {
        shorttext = text.substring(0, position);
    }
    elem.textContent = shorttext;
    elem.onclick = function(event) {
        elem.textContent = fulltext;
    }
}