Autofix
自动修复是Polylane为解决它发现的问题而打开的拉取请求。智能体先调查,然后在一个分支上写下变更并在GitHub上打开拉取请求;合并权在你手中。
功能概述
自动修复从三个地方开始。你在一个线程中请求一个,例如“打开一个修复这个问题的拉取请求”。一次修复运行在已连接的仓库中落到一个已确认的原因上,并在同一个线程中打开修复。或者Polylane自行提议一个,例如它在仓库首次连接时起草的可观测性改进。
工作原理
- 调查:智能体从拓扑、遥测和受影响的仓库中收集上下文。
- 分支:它针对仓库的基础分支创建一个分支。
- 修复:执行器写下变更并推送提交。
- 拉取请求:它打开拉取请求,描述哪里出了问题以及改了什么,并链接到背后的线程或问题。
- 你的审查:你平常的代码审查和持续集成决定是否合并。关闭它也是一种有效的结果,Polylane会记录下来。
状态
| 状态 | 说明 |
|---|---|
started | 运行正在进行。 |
branch_pushed | 提交已在分支上,拉取请求即将打开。 |
approval_required | 工作区要求在启动自动修复前先询问,所以这次运行等待有人从它的线程中启动它。 |
pr_opened | 拉取请求已打开,等待你的审查。 |
merged | 你合并了拉取请求。 |
closed | 拉取请求未经合并就被关闭了,由你或由Polylane。 |
failed | 执行器无法产生修复。 |
no_fix_needed | 智能体得出结论,没有什么需要改。 |
already_in_flight | 另一次运行或一个已打开的拉取请求已经覆盖了同一个修复。 |
quota_exhausted | 工作区目前无法启动另一次运行。 |
disabled | 该工作区已关闭自动修复。 |
plan_rejected | 请求在运行开始前被拒绝。 |
unreachable | Polylane无法再读取该仓库,例如GitHub App被移除或暂停之后。 |
expired | 运行停滞超过了它的时间窗口,已被关闭。 |
被跳过的运行可以从它的概览中用Run anyway启动,已过期或失败的用Run again,被暂缓的用Approve and run。在Settings > Workspace下,Autofix卡片包含面向整个工作区的Open autofix pull requests开关和Fixes Polylane starts on its own,其中Ask first会暂缓自动修复,直到有人启动它们。
一直打开的拉取请求
Polylane打开的拉取请求不会永远等下去。一周没有活动后,每周巡检会通过邮件和Slack发送一次提醒,并在拉取请求上留下同样的评论;如果没有人被请求审查,就会请求它所涉及代码的所有者。提醒后又一周毫无动静的拉取请求会被Polylane关闭,并附上一条解释原因的评论,分支保留,所以重新打开会把变更原样带回来。
在连接仓库过程中打开的拉取请求不参与提醒和关闭。
执行器
执行器是编写差异的编程智能体。Polylane自己的执行器无需设置;你也可以改为把自动修复路由到你已经在用的编程智能体:
在Settings > Integrations下用你自己的API密钥连接Devin、Cursor、Factory或Conductor,然后开启Use Devin for all autofixes(或Cursor、Factory或Conductor页面上的对应开关),让它成为工作区中每次自动修复的执行器。如果该集成被移除或禁用,自动修复会回退到Polylane执行器。
在哪里找到
在产生它的线程上阅读自动修复。线程侧边栏中的Lineage显示Autofix和它的Pull request,自动修复节点打开Overview、Diff、Session、Timeline和Properties标签页。Approve and run、Run again和关闭原因位于它的概览上。