The builds.sr.ht API allows you to insert jobs, monitor their progress, and access some information about the build system. Authentication to this API is brokered by meta.sr.ht. This API uses standard sr.ht error responses. All requests should be submitted via https://builds.sr.ht.

API Endpoints

The following endpoints are available to users with an OAuth key valid for the specified scope.

POST /api/jobs

Scopes: jobs:write

Inserts a new job into the job queue.

{
  "manifest": "string",         The build manifest
  "note": "string",             Human-friendly description of this build
                                  (markdown, optional)
  "tags": [...],                Arbitrary list of strings that identify this
                                  build and can be used to navigate the
                                  dashboard. Each string must use only
                                  lowercase alphanumeric characters, or any
                                  of "-_." (optional)
  "access:read": [              List of users that have read access to this
                                  job (optional). The user submitting the
                                  build will be included regardless of this
                                  value. The special username "*" indicates
                                  public read access to this build.
                                  Defaults to *.
    "string"                    Username
  ],
  "access:write": [             List of users that have write access to this
                                  job (optional). The user submitting the
                                  build will be included regardless of this
                                  value.
    "string"                    Username
  ],
  "execute": boolean,           True to start the build immediately
                                  (optional - defaults to true)
  "secrets": boolean,           True to provide secrets during the build
                                  (optional - defaults to true)
}

Note: build manifests are YAML, which is machine editable. You are encouraged to edit it before submitting!

GET /api/jobs/:id

Gets information about a job by its ID.

Scopes: jobs:read

{
  "id": integer,
  "status": "job status enum",
  "setup_log": "url",               URL to captured stdout/stderr of setup
  "tasks": [
    {
      "name": "setup",
      "status": "task status enum"
      "log": "url",
    },
    ...
  ]
}

Job status enum

Task status enum

GET /api/jobs/:id/manifest

Returns the original job's build manifest as plain text.

POST /api/jobs/:id/start

Starts a job that was created with execute=false. Returns an empty JSON object when successful.

About this wiki

commit 317a65b12acde1851bcf637602605f9fc8a7d3d6
Author: Drew DeVault <sir@cmpwn.com>
Date:   2019-09-11T22:30:51+00:00

builds.sr.ht/manifest.md: add newline
Clone this wiki
https://git.sr.ht/~sircmpwn/sr.ht-docs (read-only)
git@git.sr.ht:~sircmpwn/sr.ht-docs (read/write)