codai docs
Referință API

API-ul Resolve

Fix-uri de bug-uri verificate prin execuție: trimiți un repo și un issue, accepți oferta, primești o atestare publică.

URL de bază https://resolve.codai.ro; aceeași cheie codai_ pe care o folosești la gateway. Beta privat: repo-uri publice github.com, verificare Python/pytest. Fără fix, fără taxă — o taxare se scrie doar după ce există atestarea, iar fiecare câmp de bani e în micro-USD. Atestările sunt publice prin URL (uuid-ul e capabilitatea). Body-ul de eroare aici e { "error": "<string>" }, nu plicul gateway-ului.

POST
/v1/resolve/jobs

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai existentă. Job-urile aparțin utilizatorului cheii; toate cheile unui utilizator împart aceleași limite și același tier gratuit.

În: header

Corpul cererii

application/json

Definiții TypeScript

Folosește tipul request body în TypeScript.

Body-ul pentru POST /v1/resolve/jobs. Furnizezi issue_url sau issue_text (cel puțin unul).

Corpul răspunsului

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/resolve/jobs" \  -H "Content-Type: application/json" \  -d '{    "repo_url": "https://github.com/psf/requests"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "status": "declined",  "decline_reason": "feature request, no testable behavior"}
GET
/v1/resolve/jobs/{id}

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai existentă. Job-urile aparțin utilizatorului cheii; toate cheile unui utilizator împart aceleași limite și același tier gratuit.

În: header

Parametri de cale

id*string

UUID-ul job-ului întors de POST /v1/resolve/jobs.

Formatuuid

Corpul răspunsului

application/json

application/json

application/json

curl -X GET "https://example.com/v1/resolve/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "status": "triage",  "repo_url": "http://example.com",  "tier": "free",  "quote_micro_usd": 0,  "triage_reason": "string",  "decline_reason": "string",  "fail_reason": "string",  "cost_micro_usd": 0,  "attestation_id": "e21e05b4-d2f4-4bc0-ba2d-fc19366a584b",  "attestation_url": "/v1/resolve/attestations/1f2c1a3e-8d4b-4f8e-9a1b-0c2d3e4f5a6b",  "created_at": "2019-08-24T14:15:22Z",  "completed_at": "2019-08-24T14:15:22Z"}
POST
/v1/resolve/jobs/{id}/accept

Autorizare

bearerAuth
AutorizareBearer <token>

O cheie API codai existentă. Job-urile aparțin utilizatorului cheii; toate cheile unui utilizator împart aceleași limite și același tier gratuit.

În: header

Parametri de cale

id*string

UUID-ul job-ului întors de POST /v1/resolve/jobs.

Formatuuid

Corpul răspunsului

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/resolve/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/accept"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "status": "accepted"}
GET
/v1/resolve/attestations/{id}

Parametri de cale

id*string

UUID-ul atestării (din attestation_id de pe job).

Formatuuid

Corpul răspunsului

application/json

application/json

curl -X GET "https://example.com/v1/resolve/attestations/497f6eca-6276-4993-bfeb-53cbbbba6f08"
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "kind": "codai.resolve.attestation.v0",  "repo_url": "http://example.com",  "base_commit": "3f1e2d4c5b6a798877665544332211aabbccddee",  "patch": "string",  "repro_test": {    "path": "tests/test_repro_issue_6000.py",    "content": "string"  },  "test_command": "string",  "regression_command": "string",  "test_output_before": "string",  "test_output_after": "string",  "regression_output": "string",  "runner_image_digest": "string",  "started_at": "2019-08-24T14:15:22Z",  "verified_at": "2019-08-24T14:15:22Z"}
GET
/health

Corpul răspunsului

application/json

curl -X GET "https://example.com/health"
{  "ok": true,  "service": "codai-resolve"}