跳转到主要内容
PR 审查会检查每个拉取请求中的安全问题。它会审查变更的代码和任何变更的依赖,验证发现的问题,并在拉取请求上发表评论。 PR 审查适用于 GitHub 和 GitLab,不适用于 Azure DevOps。

开启 PR 审查

PR 审查默认开启。它由两个开关控制:
  • 针对你的组织: Workflows 中 PR review 上的 Triggers 开关。
  • 针对每个仓库: Coverage → Repositories 中的 PR Reviews 列。
你需要 Owner 或 Admin 角色才能更改它们。

审查何时运行

当拉取请求被创建、重新打开、标记为可供审查或有新提交时,审查就会运行。
  • 草稿在准备好之前不会被审查。
  • 新提交会取消较早的审查。
  • 来自 fork 的拉取请求也会被审查。
  • 变更文件超过 300 个的拉取请求会被跳过。
  • 当你的月度额度用完时,Enclave 会发表评论,说明它跳过了此次审查。
如需按需审查拉取请求,请询问 Research:Run the Workflow "PR review"。

审查做什么

  1. 分析变更的代码;如果清单文件或锁文件发生变更,还会分析依赖。
  2. 剔除不真实、不属于安全问题或与本次变更无关的问题。
  3. 根据代码是否可从互联网访问调整严重程度。
  4. 将发现项保存到 Risk,并在拉取请求上发表评论。
在 GitHub 上,审查还会添加一个名为 Enclave / PR analysis 的检查。公开仓库不会收到评论。
一开始先将该检查设为非阻塞。等团队信任其结果后,再将其设为必需检查。

Risk 中的 PR 发现项

打开 Risk → PR findings,查看每个 PR 发现项及其仓库、拉取请求和严重程度。 打开某个发现项,可查看问题、其影响以及受影响的代码行。点击 AI fix prompt 可复制一段提示词,供你的编码助手使用。 PR 发现项没有分诊状态,关闭拉取请求也不会改变它们。

依赖分析

当拉取请求变更了清单文件或锁文件时,Enclave 会检查变更的软件包是否存在供应链风险,而不仅仅是已知 CVE。它会查找:
  • 已被入侵或恶意的软件包
  • 仿冒名称(typosquatting)和不受信任的软件包
  • 隐藏在常规版本升级中的攻击
  • 已知漏洞
对于每个变更的软件包,Enclave 会权衡发布时长、维护者变更和安装脚本等注册表信号,并在发现异常时检查软件包代码。 支持的生态系统: 不支持二进制的 bun.lockb 格式。