MR Buddy
VS Code extension that fills the gap in GitLab's web UI: filter merge requests you're a reviewer on by whether you've approved them yet.
Features
- Reviewing — all open MRs where you're a reviewer, with
[approved/total] count
- Needs My Approval — reviewer MRs you haven't approved yet (the filter GitLab's web UI lacks)
- Authored by Me — your open MRs
- Assigned to Me — MRs assigned to you
- Hover tooltip shows per-reviewer approval status
- Inline Approve action, Open in browser, Copy URL
- Auto-refresh on a configurable interval
- Works with self-hosted GitLab (set
mrBuddy.gitlabHost)
Install
Search for MR Buddy in the VS Code Extensions view, or install from the Marketplace listing.
The MR Buddy icon will appear in the activity bar after install.
Build from source
git clone https://github.com/nuwanprabhath/mr-buddy.git
cd mr-buddy
npm install
npx @vscode/vsce package
code --install-extension mr-buddy-0.6.0.vsix
Alternatively, install via the UI: Cmd+Shift+P → Extensions: Install from VSIX… → select the generated .vsix.
Sign in
Cmd+Shift+P → MR Buddy: Sign In to GitLab
- Enter your GitLab host (default:
https://gitlab.com)
- Paste a Personal Access Token with scopes
api and read_user
— create one at https://gitlab.com/-/user_settings/personal_access_tokens
Updating after code changes
npm install
npx @vscode/vsce package
code --install-extension mr-buddy-0.6.0.vsix
Then reload the window: Cmd+Shift+P → Developer: Reload Window.
How "Needs My Approval" works
The GitLab REST API has no approved_by_me=false filter, but /projects/:id/merge_requests/:iid/approvals returns who has approved each MR. MR Buddy fetches that per reviewer-MR and filters client-side — no scraping needed.
Configuration
| Setting |
Default |
Notes |
mrBuddy.gitlabHost |
https://gitlab.com |
Your GitLab instance URL |
mrBuddy.refreshIntervalMinutes |
5 |
0 disables auto-refresh |
mrBuddy.showDrafts |
true |
Include draft MRs |