markdown · 1605 bytes Raw Blame History

Actions runner API

The Actions runner API is mounted under /api/v1, but it is not a personal-access-token surface. Operators register runners with shithubd admin runner register; runner processes authenticate heartbeats with that registration token and authenticate job updates with short-lived, single-use job JWTs returned by the heartbeat claim.

These endpoints are intended for shithubd-runner, not browser clients or third-party integrations.

Runner heartbeat

POST /api/v1/runners/heartbeat

Claims one queued workflow job for a registered runner when labels and capacity match. Returns 204 No Content when no job is available, or 200 OK with a job payload and job JWT.

Job log chunks

POST /api/v1/jobs/{id}/logs

Appends one base64-encoded log chunk to a workflow step. The runner uses the next_token returned by each successful call for the next job API request.

Step status

POST /api/v1/jobs/{id}/steps/{step_id}/status

Marks a workflow step running, completed, cancelled, or skipped. Terminal step updates enqueue server-side log finalization when object storage is configured.

Job status

POST /api/v1/jobs/{id}/status

Marks the claimed job running or terminal, rolls up the workflow run, and updates the matching check run.

Artifact upload

POST /api/v1/jobs/{id}/artifacts/upload

Creates a workflow artifact row and returns a short-lived signed PUT URL for object storage.

Cancel check

POST /api/v1/jobs/{id}/cancel-check

Returns whether the server has requested cancellation for the claimed job.

View source
1 # Actions runner API
2
3 The Actions runner API is mounted under `/api/v1`, but it is not a
4 personal-access-token surface. Operators register runners with
5 `shithubd admin runner register`; runner processes authenticate
6 heartbeats with that registration token and authenticate job updates
7 with short-lived, single-use job JWTs returned by the heartbeat claim.
8
9 These endpoints are intended for `shithubd-runner`, not browser clients
10 or third-party integrations.
11
12 ## Runner heartbeat
13
14 ```
15 POST /api/v1/runners/heartbeat
16 ```
17
18 Claims one queued workflow job for a registered runner when labels and
19 capacity match. Returns `204 No Content` when no job is available, or
20 `200 OK` with a job payload and job JWT.
21
22 ## Job log chunks
23
24 ```
25 POST /api/v1/jobs/{id}/logs
26 ```
27
28 Appends one base64-encoded log chunk to a workflow step. The runner uses
29 the `next_token` returned by each successful call for the next job API
30 request.
31
32 ## Step status
33
34 ```
35 POST /api/v1/jobs/{id}/steps/{step_id}/status
36 ```
37
38 Marks a workflow step running, completed, cancelled, or skipped. Terminal
39 step updates enqueue server-side log finalization when object storage is
40 configured.
41
42 ## Job status
43
44 ```
45 POST /api/v1/jobs/{id}/status
46 ```
47
48 Marks the claimed job running or terminal, rolls up the workflow run, and
49 updates the matching check run.
50
51 ## Artifact upload
52
53 ```
54 POST /api/v1/jobs/{id}/artifacts/upload
55 ```
56
57 Creates a workflow artifact row and returns a short-lived signed PUT URL
58 for object storage.
59
60 ## Cancel check
61
62 ```
63 POST /api/v1/jobs/{id}/cancel-check
64 ```
65
66 Returns whether the server has requested cancellation for the claimed
67 job.