Autofix
自動修正は、Polylaneが見つけたものを解決するために開くプルリクエストです。エージェントはまず調査し、次にブランチ上で変更を書き、GitHubでプルリクエストを開きます。マージは自分の手に残ります。
できること
自動修正は3つの場所から始まります。スレッドで依頼する場合。たとえば「これを修正するプルリクエストを開いてください」です。修正実行が接続されたリポジトリで確認済みの原因に到達し、同じスレッドで修正を開く場合。あるいは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が開いたプルリクエストは、いつまでも待ち続けることはありません。1週間活動がないと、週次の定期処理がメールとSlackで1回リマインダーを送り、同じ内容をプルリクエストにコメントとして残します。レビューを依頼された人がいない場合は、触れているコードのオーナーに依頼します。リマインダーの後さらに1週間何も起きなかったプルリクエストは、理由を説明するコメントとともにPolylaneがクローズします。ブランチは残るため、再オープンすればその時点の変更が戻ってきます。
リポジトリの接続中に開かれたプルリクエストは、リマインダーとクローズの対象外です。
エグゼキューター
エグゼキューターは差分を書くコーディングエージェントです。Polylane自身のエグゼキューターにセットアップは不要で、代わりにすでに使っているコーディングエージェントに自動修正を回すこともできます。
Settings > IntegrationsでDevin、Cursor、Factory、またはConductorを自分のAPIキーで接続し、Use Devin for all autofixes(またはCursor、Factory、Conductorのページにある同等のスイッチ)をオンにすると、ワークスペースのすべての自動修正のエグゼキューターになります。そのインテグレーションが削除または無効化されると、自動修正はPolylaneのエグゼキューターにフォールバックします。
表示される場所
自動修正は、それを生み出したスレッドで読みます。スレッドのサイドバーのLineageにはAutofixとそのPull requestが表示され、自動修正のノードを開くとOverview、Diff、Session、Timeline、Propertiesのタブがあります。Approve and run、Run again、クローズの理由はその概要にあります。
関連
- 修正実行: 確認済みの原因を自動修正に引き渡す実行。
- プルリクエストレビュー: すべてのプルリクエストがマージ前に受けるチェック。
- リポジトリ: 自動修正が書き込むコードの接続。
- GitHub: 自動修正が書き込みに使うコードホストの接続。