解读审查结果
了解 HeyDeer 审查在 GitHub 和 HeyDeer 中各部分的含义。
HeyDeer 发布的内容
HeyDeer 以 GitHub PR 审查的形式发布发现的问题,并在每个问题涉及的代码行上添加行内评论。
审查正文以结论开头,并链接仍需关注的此前问题。末尾是折叠的关于本次审查部分:审查摘要、风险等级、审查深度、触发方式,以及在 HeyDeer 中查看和配置链接。
正文中还包含审查说明、待澄清下的疑问,以及无法作为行内评论发布的问题。GitHub 只接受 diff 中代码行上的行内评论,因此涉及其他代码的问题(例如被此次改动破坏、但本身未改动的调用方)会显示在其他问题下。
完整报告位于 HeyDeer Review 检查和 HeyDeer 中的审查页面。如果审查内容太长,一条 GitHub 评论放不下,其余内容会保留在完整报告中。
只有开启自动批准时,HeyDeer 才会批准 PR。
关闭在 PR 中发布审查评论后,审查结果只显示在检查中。参见发布结果。
HeyDeer 发布的所有内容都使用仓库的审查语言。
单个问题的结构
| 部分 | 显示内容 |
|---|---|
| 标题 | 严重程度、类别和标题,例如“🟠 高(可靠性):遇到 404 时重试循环不会停止”。 |
| 说明 | 哪里有问题,以及会造成什么后果。 |
| 建议修改 | 可直接提交的具体修改,在评论恰好位于要替换的代码行上时显示。 |
| 了解更多 | 默认折叠:问题成因、修复建议、无法在此提交的修改的只读 diff,以及提出该问题的仓库检查。 |
| 相关代码 | 评论不在相关代码行上时,指向这些行的链接。 |
严重程度(严重、高、中或低)表示问题的影响,与确信程度相互独立;确信程度表示 HeyDeer 对问题确实存在有多大把握。要发布更少或更多问题,请调整结合两者进行筛选的反馈范围。
如需让 HeyDeer 在独立的 PR 中修改代码,由你检查并合并,请使用用 HeyDeer 修复。
类别
类别表示发现的问题会损害什么,与严重程度无关。符合多个类别时,HeyDeer 选用本表中最先符合的一项。
| 类别 | 损害什么 |
|---|---|
| 安全 | 有人能做到或看到不该做、不该看的东西。 |
| 正确性 | 代码在正常使用中给出错误结果。 |
| 可靠性 | 代码在出错、并发、高负载、重试或部分失败时出现故障。 |
| 性能 | 代码耗费过多时间或资源。 |
| 可维护性 | 没有出错,但代码更难修改、测试或阅读。 |
审查说明
审查受到限制时,HeyDeer 会在审查正文的审查说明下、检查摘要中以及审查页面上说明原因。
| 审查说明 | 处理方法 |
|---|---|
| 部分问题已省略 | 每次审查根据确信程度和严重程度,只保留优先级最高的问题。修复已显示的问题或决定不处理,然后重新发起审查。 |
| 匹配的仓库检查过多 | HeyDeer 按文件名顺序应用匹配的检查,并跳过其余检查。请缩小它们的文件模式,然后重新发起审查。 |
| 部分仓库检查无效 | HeyDeer 会跳过无效的检查并列出它。请修复后重新发起审查。 |
| 部分仓库检查未能完成 | 重新发起审查。 |
| 部分发现的问题或此前的问题未能完整评估 | 重新发起审查以获得完整结果。 |
带有审查说明的审查是不完整的,因此 HeyDeer 不会批准它,它的检查也不会报告成功。
关于审查说明的更多帮助,参见故障排除。
导览
GitHub 上的审查在用 HeyDeer 修复旁边有一个导览按钮。点击后在 HeyDeer 中打开导览:相关改动归为一组,重要改动突出显示。每组改动说明要检查什么,并展示所审查提交中的这段代码。
相关的组会放在同一个标签页中。如果一个标签页中的改动涉及系统的多个部分,例如浏览器、服务器和数据库,该标签页会以一张图开头:展示这些部分如何连接,或它们之间按顺序发生的步骤。选择该图即可放大。
每组改动会标记为必读、建议阅读或略读。主线之外的改动(例如测试、文档和重复性修改)会连同原因列在其他下。审查跳过的生成文件列在其他末尾;同一 PR 的后续审查会标记自上次审查后有变更的改动组。
导览用于说明变更,而不是发现的问题清单。HeyDeer 中的审查页面也可通过导览打开它。可在审查规则中通过导览关闭。
勾选文件上的已查看即可将其折叠。当文件的所有部分都已勾选时,HeyDeer 也会在 GitHub 上将该文件标记为已查看,而文件变更时 GitHub 会清除该标记。
HeyDeer 中的审查
每次审查在 HeyDeer 中都有一个页面。可以从审查记录、检查的 Details 链接,或审查正文中的在 HeyDeer 中查看打开。
审查页面会显示触发方式,以及审查覆盖的是新改动还是整个 PR。页面还会列出反馈范围内的每个发现的问题,以及已在讨论中决定不处理下的问题。
审查运行时,审查进度会显示各个阶段以及每个审查员正在做什么。审查结束后,折叠的审查过程面板会保留每个阶段、审查耗时以及每个审查员做了什么。
当另一种反馈范围会保留不同的问题时,你可以在不改变任何内容的情况下预览:在发现的问题旁选择该范围,或在未发现问题的结果下选择预览。有写权限的人可以通过取消审查停止审查;已消耗的积分不会退回。