无头审查 CLI
用结构化 verdict 和退出码接入脚本,区分审查阻塞与工具失败。
This page has not been translated into English yet. The original Chinese version is shown below.
脚本使用 qwen review run,而不是模拟人在终端输入 /review:
qwen review run 123 --json --fail-on request-changestarget 可为 PR 编号、完整 URL 或文件路径,省略则审查本地工作树。子进程 stdin 关闭,进度输出到 stderr,stdout 输出 verdict;--json 输出完整结果对象。
退出码
| 退出码 | 意义 |
|---|---|
| 0 | 得到审查结果,不论 verdict 是否阻塞 |
| 1 | 没形成结果、子进程失败或超时;参数用法错误也可能是 1 |
| 3 | 已完成且为 REQUEST_CHANGES,并显式设置 --fail-on request-changes |
未设置 --fail-on 时,0 不能解释为“批准”。判定读取 compose-review 生成的结构化产物,不解析模型自然语言里的“建议合并”。
运行选项
--comment 请求发布并遵守 PR 的发布验证;--resume 尝试恢复同一 PR 的中断状态;--quiet 控制安静运行;--timeout-minutes 默认 120,最少一分,超时终止并返回 1。
Ctrl+C 或 SIGTERM 会终止子进程组,避免留下孤立审查。--resume 只对 PR 有效,磁盘状态不匹配就新开;官方自身 CI workflow 每次重试全新运行,因为退出后没有保留可恢复的 worktree。
结果与版本证据
medium/high 同仓库审查保存 Markdown 和同主体 JSON;规范化 findings、最终 compose 结果与终端展示应对照同一运行。审查代码在源码 checkout 中被修改后,需要重新构建 CLI bundle 才生效。
官方 parse-args 与 drive 检查 review 源码摘要是否匹配 dist/cli.js 的构建记录;旧构建没有记录时提示无法检查,已安装且不带源代码的包不提示。npm start/dev 这类未打包启动路径跳过摘要检查。
摘要覆盖 review 命令、注册文件、专用 lease 和内置 review Skill,不递归覆盖所有共享 helper;安静通过只证明该检查范围一致,不能宣称整个仓库构建完全对应。
CI 接入边界
外层默认两小时硬超时与内部 8/12/16 小时计划墙独立。需要留验证和发布时间时,按审查时间预算配置软 deadline,并区分提前收尾与真正进程失败。
审查会运行构建测试,部分流程还会安装依赖和在临时副本中探测代码。将它接入 CI 时应按实际项目执行环境配置权限;本页命令是使用说明,不代表单次审查天然只读或无外部发布。