Autofix
Autofix是Polylane為了解決它發現的事情而開啟的pull request。代理先調查,然後在分支上撰寫變更並在GitHub上開啟pull request;合併由你決定。
它做什麼
Autofix從三個地方開始。你在對話串中請求一個,例如「open a pull request that fixes this」。一次修復執行在已連接的儲存庫中找到已確認的原因,並在同一個對話串中開啟修復。或者Polylane自行提出一個,例如儲存庫首次連接時它草擬的可觀測性改進。
它如何運作
- 調查:代理從拓樸、遙測資料與受影響的儲存庫收集情境。
- 分支:它對儲存庫的基底分支建立一個分支。
- 修復:執行器撰寫變更並推送提交。
- Pull request:它開啟pull request,描述出了什麼狀況以及改了什麼,並連結到背後的對話串或問題。
- 你的審查:你平常的程式碼審查與持續整合決定是否合併。關閉它也是有效的結果,Polylane會記錄下來。
狀態
| 狀態 | 說明 |
|---|---|
started | 執行正在進行。 |
branch_pushed | 提交已在分支上,pull request即將開啟。 |
approval_required | 工作區在啟動自動修復前會先詢問,所以這次執行等待有人從它的對話串啟動它。 |
pr_opened | pull request已開啟,等待你的審查。 |
merged | 你合併了pull request。 |
closed | pull request未經合併就被關閉,由你或由Polylane。 |
failed | 執行器無法產生修復。 |
no_fix_needed | 代理斷定沒有需要變更的東西。 |
already_in_flight | 另一次執行或一個開啟中的pull request已經涵蓋同樣的修復。 |
quota_exhausted | 工作區目前無法再啟動另一次執行。 |
disabled | 工作區已關閉Autofix。 |
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會把自動修復暫留到有人啟動為止。
未關閉的pull request
Polylane開啟的pull request不會永遠等待。一週沒有活動後,每週掃描會以電子郵件與Slack發送一次提醒,並在pull request上留下同樣的留言;沒有人被指派審查時,會請它所觸及程式碼的負責人審查。提醒後又過一週仍無動靜的pull request會被Polylane關閉,並附上解釋原因的留言,分支則保留,所以重新開啟就能原樣帶回這次變更。
在儲存庫連接過程中開啟的pull request不列入提醒與關閉。
執行器
執行器是撰寫差異的程式碼代理。Polylane自己的執行器不需要設定;你也可以改為把Autofix導向你已經在用的程式碼代理:
在Settings > Integrations底下用你自己的API金鑰連接Devin、Cursor、Factory或Conductor,然後開啟Use Devin for all autofixes(或Cursor、Factory、Conductor頁面上的對應開關),讓它成為工作區中每個Autofix的執行器。如果該整合被移除或停用,Autofix會回退到Polylane的執行器。
在哪裡找到它
在產生它的對話串上閱讀Autofix。對話串側欄中的Lineage顯示Autofix與它的Pull request,Autofix節點則開啟Overview、Diff、Session、Timeline與Properties分頁。Approve and run、Run again與關閉原因位於它的總覽。
相關頁面
- 修復執行:把已確認的原因交給Autofix的執行。
- Pull request審查:每個pull request在合併前得到的檢查。
- 儲存庫:連接Autofix寫入的程式碼。
- GitHub:Autofix寫入所經的程式碼託管連接。