您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Confirm GitLab merge request when creator differs from the current user.
// ==UserScript== // @name Confirm GitLab Merge Request Creator // @namespace http://tampermonkey.net/ // @version 1.0.0 // @description Confirm GitLab merge request when creator differs from the current user. // @author Ben L // @match https://gitlab.covergenius.biz/*/merge_requests/* // @icon https://www.google.com/s2/favicons?sz=64&domain=covergenius.biz // @grant none // @license MIT // ==/UserScript== (function () { "use strict"; let hasConfirmed = false; const handleMergeButtonClick = (event) => { if (hasConfirmed) { return; } const currentUserId = window.gon?.current_user_id; const creatorElement = document.querySelector("[data-user-id]"); if (!creatorElement) { return; } const creatorUserId = parseInt( creatorElement.getAttribute("data-user-id"), 10 ); if (currentUserId !== creatorUserId) { event.stopImmediatePropagation(); const confirmed = confirm( "The creator of this MR is not you. Do you want to proceed with the merge?" ); if (!confirmed) { event.preventDefault(); } else { hasConfirmed = true; event.target.click(); } } }; const observer = new MutationObserver(() => { const mergeButton = document.querySelector( ".accept-merge-request.btn-confirm" ); if (mergeButton) { mergeButton.addEventListener("click", handleMergeButtonClick, true); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); })();