GitHub Bulk PR Label Assigner
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
GitHub Bulk PR Label Assigner lets you add or remove labels from multiple pull requests in a single operation. Instead of opening each PR individually, clicking the label button, selecting labels, and saving — repeating this for every single PR — this tool provides a unified checklist of all pull requests on the current page. You can filter PRs by status (Open, Merged, Closed, Draft) to quickly find the ones you want to label. Select any number of PRs using checkboxes, choose one or more labels from the label selection list, and click Apply. The tool then automatically processes each selected PR — opening the label editor, adding or removing the chosen labels, and saving the changes. You can toggle between "Add labels" and "Remove instead" modes to either apply labels to PRs or strip them away. This turns what could be dozens of manual operations into a single batch action, making PR triage, release management, and project organization significantly faster and more consistent.
WHERE IT RUNS
This script runs exclusively on the GitHub web application in your browser. It activates on the repository pull request list page. It requires the BotGentz extension to inject and execute the script. The tool does not work on the GitHub mobile app, the API, or any third-party GitHub clients — only the web-based GitHub interface accessed through a Chromium-based or Firefox browser. It specifically targets pages under *.github.com, including the standard GitHub repository PR list view.
HOW TO USE
After installing the script via BotGentz, navigate to any GitHub repository and open the Pull Requests tab. The tool automatically detects the PR list and displays a floating panel on the right side. The panel shows all PRs on the current page, with checkboxes next to each PR entry. Each PR displays its number, title, status indicator, and existing labels. Use the search box to filter by title or PR number, or use the status filter dropdown to show only PRs with a specific status. Check the boxes for every PR you want to label. Below the PR list, select one or more labels from the label selection area — this loads available labels from the repository. Use the toggle switch to choose whether you want to "Add" labels (default) or "Remove instead" to strip labels from PRs. Click "Apply Labels" and the tool will process each selected PR one by one — opening the label editor, applying the selected labels based on your chosen operation, and saving. A status message appears when the operation completes, showing how many PRs were successfully updated.
THE ACTUAL MECHANISM — WHY IT WORKS
GitHub's web interface is built with React and uses a component-based rendering system for its PR management. The PR list is rendered as rows or list items, each containing PR metadata and action buttons. This tool scans the DOM for PR items using multiple selector patterns that GitHub consistently uses across versions. For each PR, it extracts the title, number, status, and existing labels from the visible text content and data attributes. Each PR is assigned a unique identifier from data attributes or checkbox values. When updating labels, the tool locates the label edit button within each PR item or triggers the label editor through the sidebar. The tool then identifies label checkboxes or toggle items in the label modal and uses React-friendly event dispatching — setting values via the native setter and dispatching both "input" and "change" events to ensure React registers the updates. The tool then clicks the modal's save/apply button, waits for the modal to close, and proceeds to the next PR. This approach works without making direct API calls, which would require authentication tokens and knowledge of GitHub's internal API structure. By using the existing UI, the tool works within GitHub'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 PR 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 tag emoji badge, keeping it out of the way while still accessible. The PR list inside the panel is scrollable and resizes vertically based on the number of PRs. 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 — GitHub's main UI remains fully responsive while the panel is open, and the panel updates automatically when you navigate between repositories or pages.
PLEASE NOTE
This script requires the BotGentz extension (free) to run user scripts on GitHub. GitHub 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 PR data, label information, or repository content — all operations occur locally in your browser with no external network requests except those made by GitHub itself. Label updates are applied through GitHub's own UI event system, so all changes respect your repository permissions and label settings. The tool does not bypass GitHub's security or permission system; it simply automates the clicks you would otherwise perform manually. For repositories with a large number of PRs, the tool may take several minutes to complete the operation, as each PR is processed sequentially with delays to avoid overwhelming the UI. A progress indicator shows which PR is currently being processed. Always double-check your selections and label choices before applying changes, as bulk label operations are irreversible through this tool (though GitHub's UI allows manual reverts). The tool only affects PRs visible on the current page; to label all PRs, use GitHub's built-in pagination controls or adjust your filters to show all relevant PRs. This tool is designed for batch labeling — applying the same set of labels across multiple PRs simultaneously. It is not designed for making unique, PR-specific label changes.