NoFixup!

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

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

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

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         NoFixup!
// @namespace    http://www.budw.in/
// @version      0.3.2
// @description  Disable the merge pull request button when fixup! commits exist in the current PR and haven't been squashed yet and hide the "Update branch" button.
// @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        GM_log
// ==/UserScript==
/* jshint -W097 */
/* globals $:false */
/* global waitForKeyElements */
'use strict';

waitForKeyElements (".merge-message", disableMergeButton);
waitForKeyElements (".branch-action-item", hideUpdateBranchButton);

function hideUpdateBranchButton()
{    
    var updateBranchButton = $('button:contains("Update branch")').hide();
    
    if (updateBranchButton !== null)
    {        
        updateBranchButton.hide();
    }
    else
    {
        console.log("WARNING: Can't locate active update branch button on page!");
    }
}

function disableMergeButton()
{
    var mergeButton = $('button:contains("Merge pull request")');

    if (mergeButton !== null && doesPRContainFixupCommits())
    {        
        mergeButton.text("Are there fixup! commits?");
        mergeButton.prop("disabled", true);
    }
    else
    {
        console.log("WARNING: Can't locate active merge button on page!");
    }
}

function doesPRContainFixupCommits()
{    
    return $('.timeline-commits:contains("fixup!")').length >= 1;
}