用途:通过 GitLab CLI(glab)与 GitLab 资源交互,适用于 project、issue、MR、comment、wiki 等查看、更新或创建场景,含自建实例。
主要能力:脚本 gitlab_cli.py 支持 GitLab CI lint(校验本地 .gitlab-ci.yml,支持 --dry-run、--include-jobs、--ref、--json)、MR create、MR update、Issue create、Issue update;其余场景优先直接用 glab,如 glab issue view/list、glab mr view/diff、glab issue note、glab ci status --live、glab ci trace。
使用方式:脚本须直接作为可执行命令运行,不要用 uv run python 或 python,例如 cd skills/gitlab-cli && ./scripts/gitlab_cli.py --help。目标仓库非当前目录用 --cwd <repo>;自建实例用 --hostname <host>;不在目标仓库时用 --project <id|group/project>。创建或更新 MR/Issue 的正文必须通过 --description-file <path> 传入,不支持 --description,长正文先写入文件(草稿优先 /tmp/*.md),标题可用 --title。创建 MR 前要求 git status 干净且当前分支已推送远端,并先检查模板与仓库要求;除非明确要求保留多 commit 或源分支,创建时显式传 --squash true 与 --remove-source-branch true。创建成功后输出完整 Issue/MR URL。等待 pipeline 用 glab ci status --live --compact,跟随 job 日志用 glab ci trace。
适用场景:非交互式创建/更新 Issue 与 MR、CI 配置校验、pipeline 等待与日志跟随、评论与审查意见整理、wiki 操作(先看 glab wiki --help,无子命令再考虑 glab api)。
限制:正文只允许 --description-file;部分 GitLab 14.x 实例在 CI Lint dry-run 使用 MR internal ref 时可能返回 500,脚本会避免直接发送该 ref;更新标题/正文前应先读取当前内容;创建前需检查模板、标签、复现信息与现状是否一致。其余细节资料未提供。