PR 合规检视

在合入流水线上对本仓 PR 执行合规检视。本文件是检视路由的唯一入口。

路由规则

收到 PR 检视任务(PR 号/URL 由流水线传入)时:

  1. 取本 PR 变更文件清单(gitcode-rackmount-pr-review skill 的 gitcode_cli.py get-pr-files,或本地 git diff --name-only <merge-base>...HEAD)。

  2. 按下表路由(命中多行时全部执行,可叠加多个检查):

    变更文件命中 动作
    Redfish 相关 json(interface_config/redfish/**/*.json) 依次执行两项相互独立的检查,评论分开发布:① 激活 code-compliance-precheck skill,按其 SKILL.md 完整执行:拉 PR 变更文件 → 圈定受检 json → 机械层规则检查(RF-SYNTAX/ODATA-TYPE/META/URI/ENUM)→ post-pr-comment 发机械合规预检评论;② 激活 gitcode-rackmount-pr-review skill,按其 SKILL.md 完整执行:拉 PR 上下文 + 设计帖 → 深度 Redfish 代码审查 → submit-review 发结构化检视评论
    interface_config/redfish/mapping_config/**/*.json 激活 doc-sync-check skill,按其 SKILL.md 完整执行:拉 PR 上下文 + docs 主干清单/关联文档 PR 变更 → 机械层双条件比对 → post-pr-comment 发文档覆盖评论(仅供参考,不阻塞合入)
    无命中 输出「无检视路由命中,跳过合规检视」并结束

路径口径说明:代码类检查为宽口径(整个 interface_config/redfish/ 下的 json,行内 ①机械预检 + ②语义检视);文档同步检查仅由 interface_config/redfish/mapping_config/**/*.json 触发——redfish 根下 config.json/trim_*.json 属框架配置,不涉及资源文档。两行口径不同互不干扰;命中 interface_config/redfish/mapping_config/**/*.json 的 PR 三项检查都执行。

降级与容错

  • 路由到的 skill 未安装时,先执行 bingo skill sync 后重试(bingo 是 openUBMC 流水线内置的 skill 管理工具,见 https://gitcode.com/openUBMC/bingo);若环境无 bingo 或重试后仍不可用,则按该 skill 的 SKILL.md 流程手动编排,无法编排时跳过该检查并在流水线日志记录(不阻塞)。
  • 机械合规预检与文档同步检查评论均须带 head_sha: <sha> 标记;同一 head sha 重跑不重复发(幂等)。
  • 文档同步检查评论必须带「仅供参考,不阻塞合入」说明;机械合规预检退出码 0 无 error / 1 存在 error / 2 检查未完成,本路由默认仅提示,不阻塞合入。
  • 检查异常(网络/API 失败)输出「检查未完成」降级评论,不影响其它检视动作与合入流程。