您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Disable buttons with text "Squash and merge" on Mondays
当前为
// ==UserScript== // @name Disable Squash and Merge on Mondays // @namespace http://tampermonkey.net/ // @version 0.4 // @description Disable buttons with text "Squash and merge" on Mondays // @author Your Name // @match *://*/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Check if today is Monday const today = new Date(); const isMonday = today.getDay() === 1; let disabledButtons = []; let autoMergeIntervalId; let disableButtonsIntervalId; if (isMonday && window.location.href.includes("https://github.com/Crezco-Limited/Crezco-App/pull/")) { // Function to disable buttons const disableButtons = () => { const buttons = document.querySelectorAll('button'); buttons.forEach(button => { if (button.textContent.trim() === 'Squash and merge' || button.textContent.trim() === 'Enable auto-merge (squash)') { button.disabled = true; disabledButtons.push(button); } }); }; const checkForButtonAndShowDialog = () => { const button = Array.from(document.querySelectorAll('button')).find(btn => btn.textContent.trim() === 'Disable auto-merge'); if (button) { const userConfirmed = confirm('It is Monday and likely you should not be merging, do you want to disable auto-merge?'); if (userConfirmed) { button.click(); } else { clearInterval(autoMergeIntervalId); } } }; const enableButtons = () => { disabledButtons.forEach(button => { button.disabled = false; }); disabledButtons = []; }; const banner = document.createElement('div'); banner.style.position = 'fixed'; banner.style.top = '0'; banner.style.left = '0'; banner.style.width = '100%'; banner.style.backgroundColor = 'green'; banner.style.color = 'white'; banner.style.textAlign = 'center'; banner.style.padding = '10px'; banner.style.zIndex = '1000'; banner.textContent = 'It is Monday and you might not want to be merging since it will interfere with release!'; const button = document.createElement('button'); button.textContent = 'Re-enable Merging (Release is over)'; button.style.marginLeft = '20px'; button.onclick = () => { clearInterval(autoMergeIntervalId); clearInterval(disableButtonsIntervalId); enableButtons(); banner.remove(); }; banner.appendChild(button); document.body.appendChild(banner); autoMergeIntervalId = setInterval(checkForButtonAndShowDialog, 2000); disableButtonsIntervalId = setInterval(disableButtons, 2000); } })();