API reference

Artifacts

Files a task uploaded after its run, with time-limited download URLs.

GET/v1/ci/jobs/{id}/artifacts

List a job's artifacts

Artifacts with signed urls.

Permission: ci:jobs.read

Parameters

NameTypeRequiredDescription
idpathstringRequiredThe job's ID.
cursorquerystringOptional
limitquerystringOptional

Response200 OK

dataarray of anyRequired
has_morebooleanRequired
next_cursorstring or null
curl "$CIRESK_API/v1/ci/jobs/job_0109badfc220cd056b2c0e862ac73d40/artifacts" \
  -H "Authorization: Bearer $CIRESK_KEY"
GET/v1/ci/jobs/{id}/artifacts/{*name}

Get an artifact

One artifact with a signed url.

Permission: ci:jobs.read

Parameters

NameTypeRequiredDescription
idpathstringRequiredThe job's ID.
namepathstringRequiredThe artifact's name; it may contain slashes.

Response200 OK

digeststringRequired
sha-256 digest as sha256:<64 hex>
expires_atstring (date-time)Required
media_typestringRequired
namestringRequired
size_bytesintegerRequired
taskstringRequired
urlstringRequired
presigned
curl "$CIRESK_API/v1/ci/jobs/job_0109badfc220cd056b2c0e862ac73d40/artifacts/target/dist/platform-api.tar.zst" \
  -H "Authorization: Bearer $CIRESK_KEY"
POST/v1/ci/jobs/{id}/tasks/{task}/artifacts

Start an artifact upload

A presigned put for one artifact.

Permission: ci:workers.reportCommand: send Idempotency-Key

Parameters

NameTypeRequiredDescription
idpathstringRequiredThe job's ID.
taskpathstringRequiredThe task's name, as the manifest names it (test, apps/web:test).
Idempotency-KeyheaderstringRequired

Request body

digeststringRequired
sha-256 digest as sha256:<64 hex>
lease_idstringRequired
uuidv7 rendered as lease_<32 hex>
media_typestringRequired
namestringRequired
validated relative path
partsinteger or null
sizeintegerRequired

Response201 Created

existsboolean
multipartobject or null
multipart.complete_urlstringRequired
multipart.part_urlsarray of stringsRequired
multipart.upload_idstringRequired
uploadobject or null
a presigned put
upload.expires_atstring (date-time)Required
upload.headersmap of string
upload.methodstringRequired
upload.urlstringRequired
curl -X POST "$CIRESK_API/v1/ci/jobs/job_0109badfc220cd056b2c0e862ac73d40/tasks/test/artifacts" \
  -H "Authorization: Bearer $CIRESK_KEY" \
  -H "Idempotency-Key: f9d17a6f-2e1a-440b-9c60-d3655efd5aba" \
  -H "Content-Type: application/json" \
  -d '{
    "digest": "sha256:c21fa32a40d82233c44e76e6ae776b4d403ac1a564ca26de95a14c6bb47eaf49",
    "lease_id": "lease_01778d67b48ee630f44b3f03ab6254a8",
    "media_type": "application/zstd",
    "name": "acme/platform",
    "parts": 1,
    "size": 18432000
  }'