Get the FREE Ultimate OpenClaw Setup Guide →

gitlab-mr

npx machina-cli add skill grandcamel/GitLab-Assistant-Skills/gitlab-mr --openclaw
Files (1)
SKILL.md
8.1 KB

Merge Request Skill

Merge request operations for GitLab using the glab CLI.

Quick Reference

OperationCommandRisk
List MRsglab mr list-
View MRglab mr view <id>-
Create MRglab mr create⚠️
Checkout MRglab mr checkout <id>-
Approve MRglab mr approve <id>⚠️
Merge MRglab mr merge <id>⚠️⚠️
Update MRglab mr update <id>⚠️
Close MRglab mr close <id>⚠️
Reopen MRglab mr reopen <id>⚠️
Delete MRglab mr delete <id>⚠️⚠️
Rebase MRglab mr rebase <id>⚠️

Risk Legend: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger

When to Use This Skill

ALWAYS use when:

  • User wants to work with merge requests
  • User mentions "MR", "merge request", "pull request", or related terms
  • User wants to review, approve, or merge code

NEVER use when:

  • User wants bulk operations on 10+ MRs (use gitlab-bulk instead)
  • User is only searching/filtering MRs (use gitlab-search instead)

Available Commands

List Merge Requests

glab mr list [options]

Options:

FlagDescription
--assignee=@meFilter by assignee (use @me for yourself)
--reviewer=@meFilter by reviewer
--author=<username>Filter by author
--label=<labels>Filter by comma-separated labels
--state=<state>Filter by state: opened, closed, merged, all
--source-branch=<branch>Filter by source branch
--target-branch=<branch>Filter by target branch
-P, --per-page=<n>Number of items per page

Examples:

# List MRs assigned to you
glab mr list --assignee=@me

# List review requests for you
glab mr list --reviewer=@me

# List open MRs with specific label
glab mr list --state=opened --label=bug

# List MRs targeting main branch
glab mr list --target-branch=main

View Merge Request Details

glab mr view <id> [options]

Options:

FlagDescription
-w, --webOpen MR in browser
-c, --commentsShow MR comments and notes
-s, --system-logsShow system activities/logs

Examples:

# View MR details in terminal
glab mr view 123

# Open MR in browser
glab mr view 123 --web

# View MR with comments
glab mr view 123 --comments

Create Merge Request

glab mr create [options]

Options:

FlagDescription
-t, --title=<title>MR title
-d, --description=<desc>MR description
-b, --target-branch=<branch>Target branch (default: default branch)
-f, --fillUse commit messages for title/description
--draftCreate as draft MR
-a, --assignee=<users>Comma-separated assignees
-r, --reviewer=<users>Comma-separated reviewers
-l, --label=<labels>Comma-separated labels
-m, --milestone=<milestone>Milestone title
--squash-on-mergeSquash commits on merge
--remove-source-branchRemove source branch on merge
-w, --webOpen created MR in browser
-y, --yesSkip confirmation prompts

Examples:

# Create MR with title and description
glab mr create -t "Add new feature" -d "This MR adds..."

# Create MR from commit messages
glab mr create --fill

# Create draft MR
glab mr create --draft -t "WIP: New feature"

# Create MR with reviewers and labels
glab mr create -t "Fix bug" -r "reviewer1,reviewer2" -l "bug,urgent"

# Create MR and open in browser
glab mr create -t "Feature" --web

Checkout Merge Request Branch

glab mr checkout <id> [options]

Shortcut: glab co <id>

Options:

FlagDescription
-b, --branch=<name>Local branch name
-t, --trackSet up tracking for the remote branch

Examples:

# Checkout MR branch
glab mr checkout 123

# Checkout with custom local branch name
glab mr checkout 123 -b my-local-branch

# Shortcut
glab co 123

Approve/Revoke Merge Request

# Approve MR
glab mr approve <id>

# Revoke approval
glab mr revoke <id>

# View approvers
glab mr approvers <id>

Merge/Close/Reopen

# Merge MR
glab mr merge <id> [options]

# Close MR
glab mr close <id>

# Reopen closed MR
glab mr reopen <id>

Merge Options:

FlagDescription
-s, --squashSquash commits
-d, --remove-source-branchDelete source branch after merge
--when-pipeline-succeedsMerge when pipeline succeeds
-m, --message=<msg>Custom merge commit message
-y, --yesSkip confirmation

Examples:

# Merge with squash
glab mr merge 123 --squash

# Merge and delete source branch
glab mr merge 123 --remove-source-branch

# Auto-merge when pipeline succeeds
glab mr merge 123 --when-pipeline-succeeds

Update Merge Request

glab mr update <id> [options]

Options:

FlagDescription
-t, --title=<title>Update title
-d, --description=<desc>Update description
-a, --assignee=<users>Update assignees
-r, --reviewer=<users>Update reviewers
-l, --label=<labels>Update labels
--unlabel=<labels>Remove labels
--draftMark as draft
--readyMark as ready (remove draft status)
--lock-discussionLock discussion
--unlock-discussionUnlock discussion

Examples:

# Update title
glab mr update 123 -t "New title"

# Add reviewers
glab mr update 123 -r "user1,user2"

# Mark as ready (remove draft)
glab mr update 123 --ready

# Add and remove labels
glab mr update 123 -l "approved" --unlabel "needs-review"

Add Note/Comment

glab mr note <id> -m "<message>"

Examples:

# Add comment
glab mr note 123 -m "LGTM!"

# Add closing note
glab mr note 123 -m "Closing because !456 supersedes this"

Rebase Merge Request

glab mr rebase <id>

View Diff

glab mr diff <id> [options]

Options:

FlagDescription
--color=<when>When to show color: always, never, auto

Subscribe/Unsubscribe

# Subscribe to MR notifications
glab mr subscribe <id>

# Unsubscribe
glab mr unsubscribe <id>

Add to Todo

glab mr todo <id>

Common Workflows

Workflow 1: Review and Approve

# 1. List MRs assigned for review
glab mr list --reviewer=@me

# 2. View MR details
glab mr view 123

# 3. Checkout to test locally
glab mr checkout 123

# 4. Run tests, review code...

# 5. Approve if good
glab mr approve 123

# 6. Add comment
glab mr note 123 -m "Reviewed and approved. Great work!"

Workflow 2: Create Feature MR

# 1. Create branch and make changes
git checkout -b feature/my-feature

# 2. Commit changes
git add . && git commit -m "Add new feature"

# 3. Push branch
git push -u origin feature/my-feature

# 4. Create MR
glab mr create -t "Add new feature" -d "Description..." --draft

# 5. Mark ready when done
glab mr update <id> --ready

Workflow 3: Quick Fix

# Create MR from current branch with commit info
glab mr create --fill --yes

Troubleshooting

IssueCauseSolution
Authentication failedInvalid/expired tokenRun glab auth login
MR not foundInvalid ID or no accessVerify ID with glab mr list
Permission deniedInsufficient rightsCheck project permissions
Cannot mergeConflicts or pipeline failedResolve conflicts, wait for pipeline
Branch not foundSource branch deletedCheck if branch exists

Related Documentation

Source

git clone https://github.com/grandcamel/GitLab-Assistant-Skills/blob/main/skills/gitlab-mr/SKILL.mdView on GitHub

Overview

gitlab-mr enables performing everyday GitLab merge request operations from the command line using the glab CLI. It covers listing MRs, viewing MR details, creating new MRs, approving/merging, checking out MR branches, adding notes, and rebasing. This skill helps teammates manage code reviews efficiently in GitLab-driven workflows.

How This Skill Works

Actions map directly to glab mr subcommands. Each operation uses a base command like glab mr <action> with the MR id when needed, plus flags for filtering, reviewers, labels, and workflow controls. The skill also includes practical examples to show typical patterns.

When to Use It

  • Listing merge requests
  • Viewing MR details
  • Creating a new MR
  • Approving or merging an MR
  • Checking out MR branches or adding notes and rebasing

Quick Start

  1. Step 1: List MRs with glab mr list [filters] to locate the MR you want.
  2. Step 2: View details and discussions with glab mr view <id> --comments.
  3. Step 3: Take action (e.g., glab mr merge <id>, glab mr checkout <id>, or glab mr create ...).

Best Practices

  • Filter lists with --state, --assignee, --reviewer, and --label to focus on relevant MRs.
  • Use glab mr view <id> --comments to read discussions before acting.
  • Provide clear titles and descriptions when creating MRs; consider --draft if work is in progress.
  • Review the MR in the browser with --web for major actions like merge or delete to avoid mistakes.
  • Keep MR branches in sync with rebase or update steps and verify CI before merging.

Example Use Cases

  • List open MRs assigned to you: glab mr list --assignee=@me --state=opened
  • View MR 456 with comments: glab mr view 456 --comments
  • Create a feature MR with labels and reviewers: glab mr create -t 'Add login feature' -d 'Implements login' -l 'feature,auth' -r 'reviewer1,reviewer2'
  • Approve and merge MR 789: glab mr approve 789 && glab mr merge 789
  • Checkout MR 101 to test locally: glab mr checkout 101

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers