조사 및 수정

Autofix

에이전트가 작성한 수정이 리포지토리에 풀 리퀘스트로 도착합니다. 리뷰와 병합은 사용자의 몫이며, Polylane이 알려 주고 아무도 손대지 않은 것은 정리합니다.

자동 수정은 Polylane이 발견한 것을 해결하기 위해 여는 풀 리퀘스트입니다. 에이전트가 먼저 조사한 뒤 브랜치에 변경을 작성하고 GitHub에 풀 리퀘스트를 엽니다. 병합은 사용자의 몫입니다.

하는 일

자동 수정은 세 곳에서 시작됩니다. 스레드에서 요청할 수 있습니다. 예를 들어 "이 문제를 수정하는 풀 리퀘스트를 열어 주세요"입니다. 수정 실행이 연결된 리포지토리에서 확인된 원인에 도달하면 같은 스레드에서 수정을 엽니다. 또는 리포지토리가 처음 연결될 때 초안으로 작성하는 관측성 개선처럼 Polylane이 스스로 제안합니다.

동작 방식

  1. 조사: 에이전트가 토폴로지, 텔레메트리, 영향받은 리포지토리에서 컨텍스트를 수집합니다.
  2. 브랜치: 리포지토리의 기본 브랜치를 기준으로 브랜치를 만듭니다.
  3. 수정: 실행기가 변경을 작성하고 커밋을 푸시합니다.
  4. 풀 리퀘스트: 무엇이 잘못되었고 무엇이 바뀌었는지 설명하는 풀 리퀘스트를 열고, 그 뒤의 스레드나 이슈에 링크합니다.
  5. 사용자의 리뷰: 평소의 코드 리뷰와 지속적 통합이 병합을 결정합니다. 닫는 것도 유효한 결과이며, Polylane이 이를 기록합니다.

상태

상태설명
started실행이 진행 중입니다.
branch_pushed커밋이 브랜치에 있고 풀 리퀘스트가 곧 열립니다.
approval_required워크스페이스가 자동 수정을 시작하기 전에 묻도록 설정되어 있어, 누군가 스레드에서 시작하기를 기다립니다.
pr_opened풀 리퀘스트가 열려 있고 리뷰를 기다립니다.
merged풀 리퀘스트를 병합했습니다.
closed사용자 또는 Polylane이 풀 리퀘스트를 병합하지 않고 닫았습니다.
failed실행기가 수정을 만들어 내지 못했습니다.
no_fix_needed에이전트가 바꿀 것이 없다고 결론 내렸습니다.
already_in_flight다른 실행이나 열린 풀 리퀘스트가 이미 같은 수정을 다루고 있습니다.
quota_exhausted워크스페이스가 지금은 다른 실행을 시작할 수 없습니다.
disabled워크스페이스에서 자동 수정이 꺼져 있습니다.
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는 누군가 시작하기 전까지 자동 수정을 보류합니다.

열린 채로 남은 풀 리퀘스트

Polylane이 여는 풀 리퀘스트는 영원히 기다리지 않습니다. 일주일 동안 활동이 없으면 주간 스윕이 이메일과 Slack으로 알림을 한 번 보내고 같은 메모를 풀 리퀘스트에 댓글로 남기며, 아무에게도 리뷰가 요청되지 않았다면 건드린 코드의 소유자에게 요청합니다. 알림 이후 다시 일주일 동안 아무 일도 없는 풀 리퀘스트는 Polylane이 이유를 설명하는 댓글과 함께 닫으며, 브랜치는 남으므로 다시 열면 변경이 그대로 돌아옵니다.

리포지토리를 연결하는 중에 열린 풀 리퀘스트는 알림과 닫기 대상에서 제외됩니다.

실행기

실행기는 diff를 작성하는 코딩 에이전트입니다. 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, 닫힌 이유는 개요에 있습니다.

관련 문서

  • 확인된 원인을 자동 수정에 넘기는 실행은 수정 실행을 참고하세요.
  • 모든 풀 리퀘스트가 병합 전에 받는 검사는 풀 리퀘스트 리뷰를 참고하세요.
  • 자동 수정이 작성하는 코드를 연결하려면 Repositories를 참고하세요.
  • 자동 수정이 쓰기에 사용하는 코드 호스트 연결은 GitHub을 참고하세요.