mcpField
G
gitlab-mr

gitlab-mr

github.com/grandcamel开发4165 次安装41 周前更新
代码仓库

关于 gitlab-mr

供使用 GitLab 的开发者处理合并请求的技能,通过 `glab` 命令行提供从查看、评审到合并和关闭的操作指南。还说明了操作风险及常见工作流。

主要功能

  1. 01列出并查看合并请求
  2. 02创建、更新和检出请求分支
  3. 03评审、批准并添加评论
  4. 04合并、关闭、重开或变基
  5. 05按负责人、状态和标签筛选

适用场景

  1. 01查看待评审请求并检出分支测试
  2. 02创建草稿合并请求并指定评审者
  3. 03在流水线成功后安排自动合并

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/grandcamel/gitlab-assistant-skills --skill gitlab-mr

安装后在 Claude Code 中输入/gitlab-mr确认已加载。

详细介绍

合并请求技能

使用 glab CLI 执行 GitLab 合并请求操作。

快速参考

操作命令风险
列出 MRglab mr list-
查看 MRglab mr view <id>-
创建 MRglab mr create⚠️
检出 MRglab mr checkout <id>-
批准 MRglab mr approve <id>⚠️
合并 MRglab mr merge <id>⚠️⚠️
更新 MRglab mr update <id>⚠️
关闭 MRglab mr close <id>⚠️
重新打开 MRglab mr reopen <id>⚠️
删除 MRglab mr delete <id>⚠️⚠️
变基 MRglab mr rebase <id>⚠️

风险说明:- 安全 | ⚠️ 谨慎 | ⚠️⚠️ 警告 | ⚠️⚠️⚠️ 危险

何时使用此技能

始终在以下情况使用:

  • 用户想要处理合并请求
  • 用户提到“MR”、“merge request”、“pull request”或相关术语
  • 用户想要审查、批准或合并代码

以下情况绝不使用:

  • 用户想要批量操作 10 个或更多 MR(改用 gitlab-bulk)
  • 用户只想搜索或筛选 MR(改用 gitlab-search)

可用命令

列出合并请求
glab mr list [options]

选项:

标志说明
--assignee=@me按受指派人筛选(使用 @me 表示自己)
--reviewer=@me按审阅者筛选
--author=<username>按作者筛选
--label=<labels>按逗号分隔的标签筛选
--state=<state>按状态筛选:opened、closed、merged、all
--source-branch=<branch>按源分支筛选
--target-branch=<branch>按目标分支筛选
-P, --per-page=<n>每页项目数

示例:

# 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
查看合并请求详情
glab mr view <id> [options]

选项:

标志说明
-w, --web在浏览器中打开 MR
-c, --comments显示 MR 评论和备注
-s, --system-logs显示系统活动/日志

示例:

# 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
创建合并请求
glab mr create [options]

选项:

标志说明
-t, --title=<title>MR 标题
-d, --description=<desc>MR 描述
-b, --target-branch=<branch>目标分支(默认:默认分支)
-f, --fill使用提交消息作为标题/描述
--draft创建为草稿 MR
-a, --assignee=<users>逗号分隔的受指派人
-r, --reviewer=<users>逗号分隔的审阅者
-l, --label=<labels>逗号分隔的标签
-m, --milestone=<milestone>里程碑标题
--squash-on-merge合并时压缩提交
--remove-source-branch合并时删除源分支
-w, --web在浏览器中打开创建的 MR
-y, --yes跳过确认提示

示例:

# 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
检出合并请求分支
glab mr checkout <id> [options]

快捷命令: glab co <id>

选项:

标志说明
-b, --branch=<name>本地分支名称
-t, --track为远程分支设置跟踪

示例:

# 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 MR
glab mr approve <id>

# Revoke approval
glab mr revoke <id>

# View approvers
glab mr approvers <id>
合并/关闭/重新打开
# Merge MR
glab mr merge <id> [options]

# Close MR
glab mr close <id>

# Reopen closed MR
glab mr reopen <id>

合并选项:

标志说明
-s, --squash压缩提交
-d, --remove-source-branch合并后删除源分支
--when-pipeline-succeeds流水线成功时合并
-m, --message=<msg>自定义合并提交消息
-y, --yes跳过确认

示例:

# 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
更新合并请求
glab mr update <id> [options]

选项:

标志说明
-t, --title=<title>更新标题
-d, --description=<desc>更新描述
-a, --assignee=<users>更新受指派人
-r, --reviewer=<users>更新审阅者
-l, --label=<labels>更新标签
--unlabel=<labels>移除标签
--draft标记为草稿
--ready标记为就绪(移除草稿状态)
--lock-discussion锁定讨论
--unlock-discussion解锁讨论

示例:

# 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"
添加备注/评论
glab mr note <id> -m "<message>"

示例:

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

# Add closing note
glab mr note 123 -m "Closing because !456 supersedes this"
变基合并请求
glab mr rebase <id>
查看差异
glab mr diff <id> [options]

选项:

标志说明
--color=<when>何时显示颜色:always、never、auto
订阅/取消订阅
# Subscribe to MR notifications
glab mr subscribe <id>

# Unsubscribe
glab mr unsubscribe <id>
添加到待办事项
glab mr todo <id>

常见工作流

工作流 1:审查并批准
# 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!"
工作流 2:创建功能 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
工作流 3:快速修复
# Create MR from current branch with commit info
glab mr create --fill --yes

故障排除

问题原因解决方案
身份验证失败令牌无效/已过期运行 glab auth login
未找到 MRID 无效或无权访问使用 glab mr list 验证 ID
权限被拒绝权限不足检查项目权限
无法合并存在冲突或流水线失败解决冲突,等待流水线完成
未找到分支源分支已删除检查分支是否存在

相关文档

评论

支持 Markdown