您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically clicks the merge button on Dependabot PRs and "Done" button on the notification bar
当前为
// ==UserScript== // @name Auto Merge Dependabot PRs // @namespace http://tampermonkey.net/ // @version 0.7 // @description Automatically clicks the merge button on Dependabot PRs and "Done" button on the notification bar // @match https://github.com/*/*/pull/* // @grant none // @author Nick2bad4u // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com // @license UnLicense // ==/UserScript== (function() { 'use strict'; let lastCheck = 0; const CHECK_INTERVAL = 1000; let observer; function checkAndMerge() { const now = Date.now(); if (now - lastCheck < CHECK_INTERVAL) return; lastCheck = now; console.log('checkAndMerge function called'); const authorElement = document.querySelector('.author'); if (authorElement && /dependabot(\[bot\])?|Nick2bad4u/.test(authorElement.textContent.trim())) { setTimeout(() => { const mergeButton = document.querySelector('.btn.btn-sm'); if (mergeButton && !mergeButton.disabled) { console.log('Merge button is enabled, clicking it'); mergeButton.click(); if (observer) observer.disconnect(); observeDoneButton(); } else { console.log('Merge button is disabled or not found'); } }, 500); } else { console.log('PR is not created by dependabot'); } } function observeDoneButton() { console.log('Observing for Done button...'); const notificationBar = document.querySelector('.js-flash-container'); // Adjust as necessary if (!notificationBar) { console.log('Notification bar not found'); return; } const doneButtonObserver = new MutationObserver(() => { const doneButton = document.querySelector('button[aria-label="Done"].btn.btn-sm'); if (doneButton) { console.log('Done button found, clicking it'); doneButton.click(); doneButtonObserver.disconnect(); // Stop observing after clicking } }); doneButtonObserver.observe(notificationBar, { childList: true, subtree: true }); } window.addEventListener('load', function() { console.log('Page loaded'); const targetNode = document.querySelector('.gh-header-meta'); if (!targetNode) { console.log('Target node for observation not found'); return; } observer = new MutationObserver(() => { console.log('Relevant DOM mutation detected'); checkAndMerge(); }); observer.observe(targetNode, { childList: true, subtree: true }); checkAndMerge(); }, false); })();