heydeer
登录
GitHub 上的审查

Autopilot

把拉取请求交给 HeyDeer。Autopilot 会修复待处理的问题,推送到 PR 的分支,并审查每次改动,直到 PR 可以合并或需要你介入。

HeyDeer 修复待处理的问题发现的问题、请求、失败的检查和合并冲突。
推送到 PR 的分支并在处理过的讨论中回复。
审查新的提交暂不发布审查结果。
Autopilot 停止HeyDeer 发布审查结果,并列出仍待处理的问题。
HeyDeer 会重复前三步,最多 5 轮,直到没有需要修复的问题,或需要你的回复。

使用要求

  • PR 处于打开状态,且其分支位于同一仓库中,而不是来自 Fork。
  • 你拥有该仓库的写权限,并且包含在谁可以发起审查设置中。
  • 工作区使用付费套餐。详见套餐。
  • HeyDeer 拥有 Contents 和 Pull requests 的读写权限。详见GitHub App 与权限。

启动和停止 Autopilot

可以通过以下任一方式启动 Autopilot:

  • 在 HeyDeer 的审查页面选择 Autopilot,然后选择启动 Autopilot。
  • 在 GitHub 上 HeyDeer 的审查评论中选择 Autopilot 按钮,然后在 HeyDeer 中选择启动 Autopilot。
  • 在 PR 中评论 @heydeer autopilot。

如需停止,在 HeyDeer 的 Autopilot 页面选择停止 Autopilot,或评论 @heydeer autopilot stop。再次启动 Autopilot 会重新计算轮数,并读取新的回复和评论。

Autopilot 运行期间,无法对该 PR 发起修复或审查,请先停止 Autopilot。修复进行中时,也无法启动 Autopilot。

Autopilot 修复哪些问题

类型包括
发现的问题仓库反馈范围内发现的问题,以及 HeyDeer 此前提出且仍未解决的问题,计算方式与 HeyDeer Review 检查相同。
请求由人发起、未解决且最后发言者拥有写权限的审查讨论,以及拥有写权限的人在 Autopilot 所基于的那次审查之后于 PR 中发布的评论和审查正文。Autopilot 运行期间,在 PR 中提及 @heydeer(包括在 HeyDeer 自己的审查讨论中)会交给 Autopilot 处理,而不会另起一个请求。
失败的检查如果分支规则指定了必需检查,则为这些检查;否则为除 HeyDeer Review 之外的所有检查。
合并冲突HeyDeer 会合并目标分支并解决冲突。它从不变基或强制推送,也不会仅因分支落后就更新它。

Autopilot 会忽略机器人和没有写权限的人发表的评论。HeyDeer 会在每个处理过的讨论中回复;如果某个请求需要人来决定,它会在该讨论中提问。

HeyDeer 会读取每个失败检查的标题、摘要和注释;对于 GitHub Actions 作业,还会读取失败步骤的日志。它会在隔离沙箱中复现失败,在其中修改代码并运行你的测试。无法复现的失败会保留在仍待处理的列表中。读取日志需要 Actions 权限;没有该权限时,HeyDeer 会根据其余信息处理。代码执行的隔离方式详见安全。

Autopilot 的提交不能修改 .github/workflows/ 中的文件,因为改动后的工作流会在有人读过之前就带着仓库的密钥运行。

Autopilot 何时停止

原因具体情况
已就绪没有需要修复的问题了。
需要你的回复HeyDeer 在某个讨论或其审查中提出了问题,或需要你确认此前的问题是否已解决,并修复了其他所有问题。请在对应位置回复,然后再次启动 Autopilot。
其他人推送了代码任何不是 HeyDeer 的推送,包括 GitHub 的 Update branch 按钮。HeyDeer 会丢弃进行中的这一轮及其暂存的审查。
轮数上限Autopilot 已运行 5 轮。
没有进展某一轮没有做出任何更改且待处理的项目不变,连续两轮没有解决任何问题,或者仍待处理的每一项都是某一轮说明需要人来处理的。Autopilot 的评论会说明每一项需要人做什么,例如添加密钥或修改工作流。
检查未完成一小时后检查仍在运行。
合并队列PR 已在合并队列中,推送会把它移出队列。
推送被拒绝GitHub 拒绝了 HeyDeer 的推送,例如分支规则限制了谁可以推送到该分支。
积分或套餐工作区的积分已用完,或已不再使用付费套餐。
已被手动停止任何拥有该仓库写权限的人都可以停止它。
访问权限已移除启动 Autopilot 的人已无法在该仓库中发起审查。
GitHub 拒绝访问GitHub 阻止了 HeyDeer 读取或更新该 PR,例如 HeyDeer 失去了对该仓库的访问权限。
PR 已变更PR 已关闭或合并,或其目标分支已更改。
未完成HeyDeer 未能完成某一轮,或未能完成对最新提交的审查。

HeyDeer 在 GitHub 上发布的内容

  • PR 上的一条 Autopilot 评论,随工作进展更新:当前在做什么、正在修复什么;每个已完成轮次的提交及其处理的内容记录在历史记录中。HeyDeer 会将较早的 Autopilot 评论隐藏为过时。
  • PR 分支上的提交,以及在处理过的讨论中的回复。
  • HeyDeer Review 检查,在 Autopilot 运行期间保持进行中。
  • Autopilot 停止时,会发布它对最新提交的审查(除非有其他人推送或 PR 已变更),并在评论中给出结果:停止原因以及仍需你处理的事项。当它需要你时,例如需要你的回复或遇到无法解决的问题,它会发布一条新评论并提及启动 Autopilot 的人。

Autopilot 的推送不会触发自动审查,HeyDeer 也不会向任何人请求审查。Autopilot 运行期间,HeyDeer 的审查评论不会显示 用 HeyDeer 修复 和 Autopilot 按钮。

HeyDeer 发布的审查照常适用自动批准。如果希望 HeyDeer 推送后仍需人工批准,请在分支规则中开启 Require approval of the most recent reviewable push。详见自动批准。

HeyDeer 的 Autopilot 页面列出你可见仓库中的所有运行记录。每次运行的页面会显示其状态、仍待处理的事项和已用积分,以及每一轮处理的事项、提交、回复和智能体的总结。

积分

每一轮的修复和审查都像其他修复和审查一样消耗工作区积分。Autopilot 本身不单独收费。详见积分如何计费。