This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

GitLab Bulk Merge Request Approver

Developer Tools · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — try it free, no account needed.
CategoryDeveloper Tools
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

GitLab Bulk Merge Request Approver lets you approve multiple merge requests in a single operation. Instead of opening each MR individually, clicking the approve button, and confirming — repeating this for every single MR — this tool provides a unified checklist of all merge requests on the current page. You can filter MRs by status (Open, Merged, Closed, Draft) or approval status (Approved, Not approved) to quickly find the ones that need your review. Select any number of MRs using checkboxes and click Approve. The tool then automatically processes each selected MR — clicking the approve button and confirming if needed. This turns what could be dozens of manual operations into a single batch action, making code review workflows and release management significantly faster and more efficient.

WHERE IT RUNS

This script runs exclusively on the GitLab web application in your browser. It activates on the merge request list page. It requires the BotGentz extension to inject and execute the script. The tool does not work on the GitLab mobile app, the API, or any third-party GitLab clients — only the web-based GitLab interface accessed through a Chromium-based or Firefox browser. It specifically targets pages under *.gitlab.com, including self-hosted GitLab instances that share the same URL structure.

HOW TO USE

After installing the script via BotGentz, navigate to any GitLab project and open the Merge Requests tab, or use the global MR list. The tool automatically detects the MR list and displays a floating panel on the right side. The panel shows all MRs on the current page, with checkboxes next to each MR entry. Each MR displays its number, title, status badge, and approval status indicator. Use the search box to filter by title or MR number, or use the status and approval status filter dropdowns to narrow down your selection. Check the boxes for every MR you want to approve. Click "Approve Selected" and confirm the action. The tool will process each selected MR one by one — clicking the approve button and confirming if a confirmation dialog appears. A status message appears when the operation completes, showing how many MRs were successfully approved. MRs that are already approved will be skipped with a notification.

THE ACTUAL MECHANISM — WHY IT WORKS

GitLab's web interface is built with Vue.js and uses a component-based rendering system for its merge request management. The MR list is rendered as rows or list items, each containing MR metadata and action buttons. This tool scans the DOM for MR items using multiple selector patterns that GitLab consistently uses across versions. For each MR, it extracts the title, number, status, and approval status from the visible text content and data attributes. Each MR is assigned a unique identifier from data attributes or checkbox values. When approving, the tool first attempts to use a direct "Approve" button if available on the MR item. If not, it opens the action menu and selects the approve option. The tool then handles any confirmation dialog that appears. This approach works without making direct API calls, which would require authentication tokens and knowledge of GitLab's internal API structure. By using the existing UI, the tool works within GitLab's own permission and validation system, and continues to function even if the underlying API changes.

THE PANEL

The floating panel is fully draggable — click and drag the header to reposition it anywhere on the page. The panel's position is saved per site in localStorage, so it reappears exactly where you left it when you return to the MR list. Double-click the header to snap the panel to the nearest edge (left or right). A collapse button minimizes the panel to a small tab showing a checkmark emoji badge, keeping it out of the way while still accessible. The MR list inside the panel is scrollable and resizes vertically based on the number of MRs. Pressing Escape while the panel is focused closes it completely; reopening is done via a small button injected near the page toolbar. All panel interactions are non-blocking — GitLab's main UI remains fully responsive while the panel is open, and the panel updates automatically when you navigate between projects or pages.

PLEASE NOTE

This script requires the BotGentz extension (free) to run user scripts on GitLab. GitLab frequently updates its web interface and modal structures; if the tool stops working, check for an updated version within BotGentz's script repository. This tool does not store, transmit, or log any MR data, approval status, or project information — all operations occur locally in your browser with no external network requests except those made by GitLab itself. MR approvals are applied through GitLab's own UI event system, so all changes respect your project permissions and approval rules. The tool does not bypass GitLab's security or permission system; it simply automates the clicks you would otherwise perform manually. For projects with a large number of MRs, the tool may take several minutes to complete the operation, as each MR is processed sequentially with delays to avoid overwhelming the UI. A progress indicator shows which MR is currently being processed. Always double-check your selections before approving, as approving MRs affects merge permissions and pipeline rules. The tool only affects MRs visible on the current page; to approve all MRs, use GitLab's built-in pagination controls or adjust your filters to show all relevant MRs. The tool displays a warning if you attempt to approve MRs that are already approved, allowing you to skip them or proceed.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.