調查與修復

Autofix

代理撰寫的修復以pull request的形式送達你的儲存庫。由你審查與合併;Polylane會提醒你,並清理沒有人碰的東西。

Autofix是Polylane為了解決它發現的事情而開啟的pull request。代理先調查,然後在分支上撰寫變更並在GitHub上開啟pull request;合併由你決定。

它做什麼

Autofix從三個地方開始。你在對話串中請求一個,例如「open a pull request that fixes this」。一次修復執行在已連接的儲存庫中找到已確認的原因,並在同一個對話串中開啟修復。或者Polylane自行提出一個,例如儲存庫首次連接時它草擬的可觀測性改進。

它如何運作

  1. 調查:代理從拓樸、遙測資料與受影響的儲存庫收集情境。
  2. 分支:它對儲存庫的基底分支建立一個分支。
  3. 修復:執行器撰寫變更並推送提交。
  4. Pull request:它開啟pull request,描述出了什麼狀況以及改了什麼,並連結到背後的對話串或問題。
  5. 你的審查:你平常的程式碼審查與持續整合決定是否合併。關閉它也是有效的結果,Polylane會記錄下來。

狀態

狀態說明
started執行正在進行。
branch_pushed提交已在分支上,pull request即將開啟。
approval_required工作區在啟動自動修復前會先詢問,所以這次執行等待有人從它的對話串啟動它。
pr_openedpull request已開啟,等待你的審查。
merged你合併了pull request。
closedpull request未經合併就被關閉,由你或由Polylane。
failed執行器無法產生修復。
no_fix_needed代理斷定沒有需要變更的東西。
already_in_flight另一次執行或一個開啟中的pull request已經涵蓋同樣的修復。
quota_exhausted工作區目前無法再啟動另一次執行。
disabled工作區已關閉Autofix。
plan_rejected請求在執行開始前就被拒絕。
unreachablePolylane無法再讀取儲存庫,例如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寫入所經的程式碼託管連接。