Skip to content

HTTP API ​

autofix 주소 ​

메서드경로인증하는 일
POST/api/triggerBearer AUTOFIX_TOKEN목록을 받아 실행을 만들어요
GET/api/runsBasic VIEW_USER·VIEW_PASSWORD기록을 JSON 으로 줘요
GET/Basic기록 화면
GET/healthz없음ok

모든 응답에 Content-Security-Policy: default-src 'none'; style-src 'self'; …, X-Content-Type-Options: nosniff, Referrer-Policy: no-referrer, Cache-Control: no-store 를 붙여요.

POST /api/trigger ​

http
POST /api/trigger
Authorization: Bearer <AUTOFIX_TOKEN>
Content-Type: application/json

{
  "source": "daily-scan",
  "subject": "취약점 2건",
  "findings": [
    {
      "repo": "owner/api",
      "file": "pnpm-lock.yaml",
      "package": "zod",
      "version": "4.6.5",
      "fixed": "4.6.6",
      "id": "GHSA-xxxx-xxxx-xxxx",
      "severity": "HIGH",
      "scope": "runtime",
      "summary": "한 줄 설명",
      "url": "https://github.com/advisories/GHSA-xxxx-xxxx-xxxx"
    }
  ]
}

본문

필드형식뜻
source문자열, 선택출처 이름. 앞뒤 공백을 떼고 40자까지. 비면 api
subject문자열, 선택기록에 남기는 제목(예: 리포트 메일 제목)
findings배열취약점 목록. 비면 아무것도 하지 않아요

findings 의 항목

필드꼭뜻
repo✓owner/name. 세션이 이 이름으로 레포를 찾거나 clone 해요
package✓패키지 이름
id✓권고 번호(GHSA, CVE, OSV id)
severity✓CRITICAL·HIGH·MEDIUM·LOW. 정렬과 화면 색에 써요
version지금 버전
fixed고친 버전. 비면 "고친 버전 없음"으로 전해요
file찾은 파일(락파일 이름 등)
scoperuntime·dev 같은 범위
summary한 줄 설명. 화면에만 보여요
url권고 주소. 화면의 링크
kind생태계나 종류(예: npm). 기록에만 남아요
aliases다른 번호들. 기록에만 남아요

모르는 필드는 무시해요. 본문은 4MB 까지 읽어요.

응답

코드본문언제
202{"ok":true,"id":"20261025-0030-a1b2c3","status":"working"}세션을 열었어요
202{"ok":true,"id":"…","status":"failed"}실행은 만들었지만 세션을 열지 못했어요. 이유는 기록에
202{"ok":true,"id":"…","status":"skipped"}이전 실행이 진행 중이라 건너뛰었어요
200{"ok":true,"skipped":"남은 취약점 없음"}findings 가 비었어요. 기록을 남기지 않아요
400JSON 을 읽지 못했어요본문이 JSON 이 아니거나 4MB 를 넘었어요
401토큰이 맞지 않아요토큰이 다르거나 AUTOFIX_TOKEN 이 비었어요
500기록 저장 실패runs.json 에 쓰지 못했어요

오류 본문은 JSON 이 아닌 글자예요. 세션을 여는 동안(최대 30초) 응답을 기다려요.

GET /api/runs ​

기록을 최근 것부터 배열로 줘요. 항목의 필드는 실행 상태를 보세요.

sh
curl -fsS -u "$VIEW_USER:$VIEW_PASSWORD" https://autofix.example.com/api/runs

agent-bridge 서비스 API ​

autofix 가 부르는 쪽이에요. 직접 부를 일은 없지만 문제를 찾을 때 알아 두면 좋아요. 두 주소 모두 Authorization: Bearer <BRIDGE_SERVICE_TOKEN> 만 보고, 쿠키나 Origin 은 보지 않아요.

POST /api/service/sessions ​

json
{ "host": "내 맥 이름", "cwd": "~/src", "prompt": "…첫 메시지…", "title": "🤖 autofix 20261025-0030-a1b2c3" }

BRIDGE_SERVICE_UID 사람의 맥 중 host 가 id 이거나 이름(대소문자 무시)인 첫 맥에, 안전한 전부 허용·Chrome 끔으로 세션을 열고 {"ok":true,"id":"<세션 id>"} 를 줘요.

코드문구언제
401서비스 토큰이 맞지 않아요토큰이 다르거나 서비스 API 가 꺼짐
415Content-Type 이 JSON 이 아님
400prompt 가 비어 있어요
404그런 맥이 없어요host 와 맞는 맥이 없음
409맥이 연결돼 있지 않아요맥이 끊겨 있음

GET /api/service/sessions/:id ​

서비스 API 로 연 그 사람의 세션만 읽을 수 있어요.

json
{ "id": "…", "host": "내 맥 이름", "state": "done", "phase": "idle", "waitingOn": "", "answer": "…마지막 답변…" }
필드뜻
stateworking·waiting·done·closed. 읽는 법은 실행의 일생
phaseagent-bridge 의 세부 단계
waitingOnwaiting 일 때 기다리는 카드의 제목(200자까지)
answer세션의 마지막 답변. 20,000자를 넘으면 잘리고 …(잘림) 이 붙어요

없는 세션, 남의 세션, 사람이 직접 연 세션은 404 예요.

agent-bridge 의 서비스 API 위에서 도는 자동 대응 서버예요.