SuperAPI AI 工具集

check

测试与质量

查看项目

更新于 10-26 18:53

技能介绍

check(bro)是一个用于仓库检查与扫描的技能,面向已配置 sverka 工作流(sverka.config.ts)或用户希望借助 bro 执行检查的仓库。该技能不包含具体执行机制,所有机制都位于 bro CLI 中,技能本身只负责策略,是对 bro check 的轻量封装。

用途与机制 bro check 是 bro 的检查门面,sverka 是执行器:它加载 sverka.config.ts,将 Entry 绑定为 Run Plan(计划时评估可生成 gqlb 构建查询等产物),以并行方式运行步骤,并返回每步统计信息以及可选的 SARIF findings。bro 解析 sverka run --format json 的输出并渲染报告,包括步骤状态与耗时行、汇总信息、findings 以及评估时的 verdict。

主要命令

  • bro check:运行仓库的 sverka 工作流(默认 entry,文本报告),退出码与 sverka 一致,可用于 CI。
  • bro check --json:输出结构化结果,格式为 {command:"check", data:{planId,status,steps[],findings?,verdict?}, durationMs}。
  • bro check --evaluate:额外收集 *.sarif 产物并运行 sverka 的策略门禁(verdict 转为退出码)。
  • bro check --root <dir>:针对其他检出目录运行,使用该目录下的 bro.config 和 node_modules。
  • --config、--entry、--executor host|docker、-q、-v 会透传给 sverka run。

配置 配置文件包含 check 对象,字段有 bin(设为 sverka 可跳过二进制解析)、config(默认 sverka.config.ts)、entry(默认 default)、executor(默认 host)、evaluate(默认 false)。所有字段均为可选;config、entry、executor 对应 sverka run 的同名标志,evaluate: true 会开启 SARIF 收集与策略门禁。命令行标志优先于配置。二进制解析顺序为:check.bin → 仓库固定安装(node_modules/sverka,其次已弃用的 node_modules/@sverka/cli,再次 .bin shims,从 root 向上查找)→ PATH 上的 sverka → @broject/bro 捆绑的 sverka。

策略与限制 在已接入 bro 的仓库中,优先使用 bro check 而非直接运行 sverka run,因为执行相同、输出为 bro 风格,且退出码已镜像门禁(步骤失败或策略 verdict 不通过时非零)。仅当配置中的步骤声明了 SARIF 产物输出时才应设置 evaluate: true,否则 sverka 没有可收集的内容;bro 会重试一次并给出警告,此时应修正配置而非依赖重试。findings 到 beads 的去重尚未接通,bro check 只报告 findings,不提交它们。