用途
monitor-pipeline 用于持续监控 GitLab CI/CD 流水线或指定作业,直到其进入终态(成功、失败、取消或跳过)。它会在状态发生变化时实时报告,并在作业失败时立即通知用户,附带详细错误信息。
主要能力
- 获取流水线或作业的初始状态。
- 按固定间隔轮询状态(默认 15 秒,最小 5 秒,最大 300 秒)。
- 检测状态变化并输出更新,展示已完成与剩余作业的进度。
- 当作业失败时,自动抓取该作业日志并立即报告失败详情。
- 当流水线或作业到达终态时干净退出。
- 支持监控整个流水线或通过 --job 参数监控单个作业。
使用方式
命令格式:
/monitor-pipeline <project-id> <pipeline-id> [--job <job-id>] [--interval <seconds>]
参数说明:
- project-id(必填):数字项目 ID 或 URL 编码路径。
- pipeline-id(必填):要监控的流水线 ID。
- --job(可选):指定要监控的作业 ID,而非整个流水线。
- --interval(可选):轮询间隔秒数,默认 15,最小 5,最大 300。
示例:
监控整个流水线: /monitor-pipeline 456 1234
监控特定作业: /monitor-pipeline 456 1234 --job 5678
自定义轮询间隔: /monitor-pipeline 456 1234 --interval 30
适用场景
- 在合并请求触发流水线后,跟踪构建、测试、部署各阶段进度。
- 只关心某个关键作业(如生产部署)时,单独监控该作业。
- 需要第一时间获知失败并查看错误日志,以便快速修复。
限制与前提
- 需要配置 GitLab MCP 服务器。
- 需要对目标项目有访问权限。
- 需要有效的流水线 ID(可从 MR 或项目流水线列表获取)。
- 监控采用轮询方式,非事件推送,状态更新存在间隔延迟。
- 可通过 Ctrl+C 取消监控。
终态与状态指示
终态包括:success(全部成功)、failed(一个或多个作业失败)、canceled(手动取消)、skipped(规则未满足而跳过)。状态图标:✓ 成功、✗ 失败、⏳ 运行中、⏸️ 等待、⏭️ 跳过、⊘ 取消。
错误处理
- API 错误:使用指数退避重试。
- 网络问题:报告连接问题并继续监控。
- 无效 ID:立即退出并给出提示。
- 权限不足:报告访问问题并建议检查权限。
相关命令
- /view-pipeline:一次性查看流水线状态快照。
- /create-mr:创建触发流水线的 MR。
- /review-mr:审查 MR 并包含流水线状态。