您需要先安装一个扩展,例如 篡改猴、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 });
- })();