SuperAPI AI 工具集

gitlab-create-merge-request

编程与开发

查看项目

更新于 10-16 06:21

技能介绍

用途:通过 glab 命令行工具为当前分支创建一个以 main 为目标分支的 GitLab 合并请求(MR),标题取自当前分支相对 main 的第一个提交信息。

主要能力:获取首个提交信息作为标题,命令为 git log main..HEAD --reverse --format="%s" | head -n 1;支持两种创建模式。模式 A 显式指定标题与正文,需分支已推送:glab mr create -t "<TITLE>" -d "$(cat /tmp/mr_body.md)" -b main -y;模式 B 从提交推导标题与正文并自动推送分支:glab mr create --fill --fill-commit-body -b main -y。两种模式不可混用。

正文与限制:正文必须写入含真实换行的文件,不能把 \n 直接放进带引号的 -d 参数,否则 GitLab 会原样显示。glab 没有 --description-file(那是 gh pr create --body-file);长正文可用 -d "$(cat 文件)" 或 -d - 打开编辑器(仅交互,不适合智能体)。--fill 与 -t、-d 同时使用会报错;--fill-commit-body 须配合 --fill;--template 与 -d、--fill、--related-issue 互斥,旧版本可能没有。非交互模式必须有 -t 或 --fill。--fill 会隐式推送分支,模式 A 不会,需先推送。使用前应先查看 glab mr create --help,因为 glab 与 gh 不同,且已安装版本可能不支持某些上游标志。

可选图片:本地图片需先上传到项目,通过 curl --form 调用项目 uploads 接口(不用 glab api -F,否则会以字符串字段发送导致 HTTP 400),从返回的 markdown 字段取得可粘贴的 Markdown。

创建后验证:用 glab mr view <MR_ID> --output json 检查描述是否含真实换行与 Markdown 标记;若出现字面 \n,用真实换行正文文件通过 glab mr update <MR_ID> -d "$(cat /tmp/mr_body.md)" -y 修复后再验证,通过前不应报告成功。

适用场景:需要从命令行快速为当前分支创建规范化 GitLab MR 的开发流程。