后续审查
PR 首次审查之后,HeyDeer 会在已审查内容的基础上继续。它会在改动中寻找新问题,重新检查之前发现的问题,并且不会重复提出讨论中已涉及的疑虑。
只审查新改动
默认开启。可在“组织设置 → 审查规则”的“如何审查”下设置,也可以在仓库的“审查规则”中设置。它适用于自动审查和手动请求的审查。
之后的审查会检查自 HeyDeer 上次成功审查以来 PR 自身提交所改动的内容,并重新检查上次审查发现的问题。仍然成立的问题会保留,但不会发布新评论,因此检查结果和批准仍然覆盖整个 PR。
从目标分支合并进来的提交会被排除,但冲突解决的改动会被审查。自上次审查以来新增或修改的仓库检查会应用于整个 PR。
HeyDeer 何时审查整个 PR
- 首次审查,或“只审查新改动”关闭时的任何审查。
- 有人评论了
@heydeer full review。 - 目标分支发生了变化,或上次审查的是同一个提交。
- 上次审查有审查警告。
- GitHub 上已不存在上次审查的提交,例如强制推送之后。
检查的摘要以及 HeyDeer 中该审查的“审查内容”一行会显示审查覆盖的是“新改动”还是“整个 PR”。
已有的讨论
发布之前,HeyDeer 会阅读描述、评论、审查摘要和每个审查讨论。它不会重复发布别人已经提出的问题,但在问题被修复或被决定不处理之前,仍会将其计为问题。回归问题或由修复引起的问题算作新问题。
HeyDeer 只在自己发起的讨论中回复,也只将这些讨论标记为已解决。开启将已处理的 HeyDeer 讨论标记为已解决(默认开启)时,一旦当前代码修复了该疑虑或证明该疑虑有误,或该疑虑被决定不处理,HeyDeer 就会将讨论标记为已解决。仅回复“已修复”是不够的。
决定不处理发现的问题
在该问题的讨论中回复并说明原因,例如该行为是有意为之或已在某个 Issue 中跟踪,或者直接将讨论标记为已解决。只有拥有写入或更高权限的人才能决定不处理;其他人的回复会被视为上下文。
HeyDeer 会在下一次审查时考虑这一决定,并予以接受,除非有具体证据表明该决定忽略了严重问题。被接受的决定不会导致该问题再次发布,它也不计为问题,并会列在“已在讨论中决定不处理”下。
未解决的讨论
如果 HeyDeer 发起的讨论所涉及的疑虑仍未解决或无法验证,这些讨论会出现在检查的摘要中,阻止自动批准,并在开启发现问题时将检查标记为失败时导致检查失败。