Marketplace gitlab-mr-issue
查看/更新 GitLab Issue、MR(含评论与 diff),并按团队规范非交互创建或修改 MR/Issue;涉及 GitLab(含自建实例)Issue/MR 的操作时使用。
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/dcjanus/gitlab-mr-issue" ~/.claude/skills/aiskillstore-marketplace-gitlab-mr-issue && rm -rf "$T"
manifest:
skills/dcjanus/gitlab-mr-issue/SKILL.mdsource content
GitLab CLI Skill(MR/Issue)
基本准备
- 确认身份与认证:
读取当前实例及 “Logged in to <host> as <user>” 行。glab auth status- 直接取用户名:
(依赖本机GITLAB_HOST=<host> glab api /user | jq -r '.username'
,若已设全局jq
可直接GITLAB_HOST
)。glab api /user - 自建实例优先通过环境变量
指定;如需单次覆盖,可在命令前加GITLAB_HOST
或用GITLAB_HOST=<host>
。-R group/project
- 输出格式默认够用,若需机器可读用
。--output json - 创建 MR 或 Issue 成功后,在终端单独一行输出 CLI 返回的完整 URL。
Issue 快速查看
- 只看正文:
.glab issue view <id|url> - 带讨论:
(必要时加glab issue view <id|url> --comments
)。--system-logs - 列表:
;过滤标签用glab issue list --state opened --per-page 50 [-R group/project]
。--label foo,bar - 添加评论:
。glab issue note <id> -m "comment"
MR 快速查看
- MR 概览(按需取字段):
。glab mr view <id|branch|url> --output json | jq -r '.title,.state,.author.username,.web_url,.description' - 查看 diff:
;需要原始 patch 用glab mr diff <id|branch> --color=never
。--raw - 相关 issue:
。glab mr issues <id>
创建 MR(非交互)
以下标题与描述规范为默认推荐格式;如与团队/仓库/平台等既有约束冲突,以既有约束为准。若有明确要求(如需中文),则优先遵循;未覆盖的部分再按本规范补齐。
- 确保本地分支已推送且
干净。git status - 标题风格:英文、遵循语义化提交规范(如
),保持简洁且描述核心目的;即使标题要求中文,语义化前缀(如feat(scope): short summary
、feat
)仍需英文。fix - 描述风格:英文、短句和项目符号,优先让不看代码的读者也能理解动机与结果。重点是 what/why/impact 与必要约束,避免流水账与开发过程细节。若上下文不足以明确目标或约束,应主动向开发者确认后再撰写。涉及专有名词、函数名、方法名、类名、API 名称或配置键时,使用 inline code(反引号)包裹以提升可读性与准确性。
- 期望正文格式(精简但信息完整,按需删减无关块):
:用 1-2 条短句从功能层面概述目的与影响,强调功能变更而非逐条代码变更;跨层(如 Service/DAO)且语义一致的改动应合并为一次功能描述。## Summary
:3-5 条要点列出主要变更。## Key changes
:若存在约束、限制或非理想选择,简要说明。## Constraints / tradeoffs
:验证方式、命令或场景;未测试需注明原因。## Testing
(可选):review 关注点、发布注意事项或后续计划。## Notes
- 特别强调:描述应聚焦 MR 合并前后系统的变化与影响,避免记录开发中的中间过程或修改步骤。
- 用 heredoc 传多行描述,避免交互式编辑:
glab mr create \ --title "feat(scope): short summary" \ --description "$(cat <<'EOF' # 按上面的格式填充正文 EOF )" \ --target-branch main \ --source-branch $(git branch --show-current) \ --label bugfix \ --draft \ --yes
- 推荐参数(可按需开启):
(合并后删源分支)、--remove-source-branch
(合并前压缩为单一 commit);若团队偏好可省略。--squash-before-merge - 其他常用参数:
、--reviewer user1,user2
。--allow-collaboration - 修改已建 MR:
。glab mr update <id> --title "..." --description "$(cat <<'EOF'\n...\nEOF\n)" --label ... --yes
Issue 创建(非交互)
- 命令模式与 MR 类似,使用
与 heredoc 描述:--title
glab issue create \ --title "feat: short summary" \ --description "$(cat <<'EOF'\n- context\n- expected\nEOF\n)" \ --label backlog,team-x \ --assignee user1 \ --yes
- 若需私密:加
;截止日期--confidential
。--due-date YYYY-MM-DD
常见选项速记
:指定自建实例项目,等价于完整 URL。-R group/project
与--per-page
:分页查看列表或评论时使用。--page
更新 Issue/MR 标题或描述(前置要求)
在更新 Issue 或 MR 的标题/描述之前,必须先读取当前标题/正文(即将被修改的内容),再进行修改。