Greasy Fork

GitHub Disable Merge When Fixup! Commits Exist

Disable the merge pull request button when fixup! commits exist in the current PR and haven't been squashed yet

当前为 2016-03-03 提交的版本,查看 最新版本

// ==UserScript==
// @name         GitHub Disable Merge When Fixup! Commits Exist
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  Disable the merge pull request button when fixup! commits exist in the current PR and haven't been squashed yet
// @author       Drew Budwin
// @match        http*://github.com/*
// @require      https://code.jquery.com/jquery-2.2.1.js
// @require      https://greasyfork.org/scripts/6250-waitforkeyelements/code/waitForKeyElements.js?version=23756
// @grant        none
// ==/UserScript==

waitForKeyElements (".merge-message", disableMergeButton);

function disableMergeButton()
{
    var mergeButtonText = "Merge pull request";
    var mergeButton = findButtonByClass(mergeButtonText);

    if (mergeButton !== null && doesPRContainFixupCommits())
    {
        mergeButton.innerHTML = "Are there fixup! commits?";
        mergeButton.disabled = true;
    }
    else
    {
        console.log("ERROR: Can't locate active merge button on page with text \"" + mergeButtonText + "\"!");
    }
}

function findButtonByClass(textToLookFor)
{
    var buttons = document.getElementsByClassName('btn btn-primary js-merge-branch-action');

    if (buttons.length == 1)
    {
        return buttons[0];
    }

    return null;
}

function doesPRContainFixupCommits()
{
    var position = document.documentElement.innerHTML.indexOf('fixup!');

    if (position !== -1)
    {
        return true;
    }

    return false;
}