NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Github hide green checks // @namespace http://losipiuk.github.io/ // @version 0.5 // @description Allow hiding boring checks on github PR // @author losipiuk // @license MIT // @match https://github.com/*/*/pull/* // @match https://github.com/*/*/actions/runs/* // @match https://github.com/*/*/runs/* // @match https://github.com/pulls // @grant none // @require http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js // ==/UserScript== (function () { 'use strict'; console.log('Installing "Hide Green Checks"'); var greenChecksHidden = true; // crate CSS class $("<style type='text/css'> .check_hidden{ display: none !important;} </style>").appendTo("head"); function determinePage() { if (window.location.href.indexOf("/runs/") != -1) { return "runs"; } if (window.location.href.indexOf("/pull/") != -1) { return "pull"; } return "other" } function addButtonIfNeeded() { switch(determinePage()) { case "pull": addButtonIfNeededPull(); break; case "runs": addButtonIfNeededRuns(); break; case "other": break; } jQuery('#_f_hide_green_checks').click(hideGreenChecks); jQuery('#_f_show_green_checks').click(showGreenChecks); ensureButtonVisibility(); } function addButtonIfNeededPull() { // make status list higher jQuery('.branch-action-item.open > .merge-status-list-wrapper > .merge-status-list, .branch-action-item.open > .merge-status-list').css("max-height", "1600px"); if (jQuery("#_f_hide_green_checks").length > 0) { return } var box = jQuery("span:contains('Hide all checks')").last().parent().parent(); box.append('<a id="_f_hide_green_checks" class="btn-link float-right" style="display: none;">Hide green checks</a>'); box.append('<a id="_f_show_green_checks" class="btn-link float-right" style="display: none;">Show green checks</a>'); jQuery('#_f_hide_green_checks').click(hideGreenChecks); jQuery('#_f_show_green_checks').click(showGreenChecks); ensureButtonVisibility(); } function addButtonIfNeededRuns() { if (jQuery("#_f_hide_green_checks").length > 0) { return } var box = jQuery("div.row:contains('Jobs')").last(); box.append(' <a id="_f_hide_green_checks" class="btn-link float-right" style="display: none;">Hide green checks</a>'); box.append(' <a id="_f_show_green_checks" class="btn-link float-right" style="display: none;">Show green checks</a>'); } function ensureButtonVisibility() { if (!greenChecksHidden) { jQuery("#_f_hide_green_checks").show(); jQuery("#_f_show_green_checks").hide(); } else { jQuery("#_f_hide_green_checks").hide(); jQuery("#_f_show_green_checks").show(); } } function hideGreenChecks() { greenChecksHidden = true; ensureButtonVisibility(); } function showGreenChecks() { greenChecksHidden = false; ensureButtonVisibility(); } function enforceGreenCheckHidden() { switch(determinePage()) { case "pull": enforceGreenCheckHiddenPull(); break; case "runs": enforceGreenCheckHiddenRuns(); break; case "other": break; } } function enforceGreenCheckHiddenPull() { var actionRuns = jQuery(".merge-status-item > .merge-status-icon > .color-fg-success.octicon-check"); console.log("Found " + actionRuns.length + " green checks"); if (greenChecksHidden) { actionRuns.parent().parent().addClass("check_hidden") } else { actionRuns.parent().parent().removeClass("check_hidden") } } function enforceGreenCheckHiddenRuns() { var actionRuns = jQuery("li[data-test-selector=check_run_list_item] > div > a > span > div >svg.color-fg-success") .parent().parent().parent().parent(); console.log("Found " + actionRuns.length + " green checks"); if (greenChecksHidden) { actionRuns.addClass("check_hidden") } else { actionRuns.removeClass("check_hidden") } } determinePage(); addButtonIfNeeded() window.setInterval(addButtonIfNeeded, 200); window.setInterval(enforceGreenCheckHidden, 200); })();