Skip to content
NebulaCtrldocs
HTTP APIEndpoints

Build

Builds from Git: list, read logs, retry and cancel, and preview what a repository would build. Each operation lists its method and path, parameters, request body, responses and an example call.

GET/api/v1/builds

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Query Parameters

cursor?string

Opaque cursor from a previous response's nextCursor. Omit for the first page.

limit?integer

How many items to return.

Formatint64
Range1 <= value <= 200
Default50
status*string

Build status to filter by.

Value in

  • "queued"
  • "running"
  • "succeeded"
  • "failed"
  • "superseded"
  • "cancelled"

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/builds?status=queued"
{  "$schema": "https://example.com/PageBuildDTO.json",  "items": [    {      "$schema": "https://example.com/BuildDTO.json",      "actorUserId": "string",      "branch": "string",      "builder": {        "detection": {          "buildCommand": "string",          "buildable": true,          "framework": "string",          "installCommand": "string",          "monorepo": true,          "nodeVersion": "string",          "outputDir": "string",          "packageManager": "string",          "packageManagerPinned": "string",          "port": 0,          "portSource": "script",          "provider": "string",          "signals": [            {              "detail": "string",              "path": "string"            }          ],          "startCommand": "string",          "static": true        },        "engine": "dockerfile"      },      "cache": {        "cachedSteps": 0,        "totalSteps": 0      },      "clusterId": "string",      "commitMessage": "string",      "commitSha": "string",      "createdAt": "2019-08-24T14:15:22Z",      "environmentId": "string",      "error": "string",      "finishedAt": "2019-08-24T14:15:22Z",      "id": "string",      "imageRef": "string",      "kind": "string",      "number": 0,      "releaseError": "string",      "releaseErrorAt": "2019-08-24T14:15:22Z",      "repository": "string",      "repositoryConfig": {        "commit": "string",        "path": "string",        "problems": [          {            "line": 0,            "message": "string",            "path": "string"          }        ],        "source": "string",        "status": "absent",        "summary": "string"      },      "serviceId": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string",      "steps": [        {          "finishedAt": "2019-08-24T14:15:22Z",          "name": "string",          "startedAt": "2019-08-24T14:15:22Z",          "status": "string"        }      ],      "trigger": "string"    }  ],  "nextCursor": "string"}

Get a build.

GET/api/v1/builds/{id}

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/builds/string"
{  "$schema": "https://example.com/BuildDTO.json",  "actorUserId": "string",  "branch": "string",  "builder": {    "detection": {      "buildCommand": "string",      "buildable": true,      "framework": "string",      "installCommand": "string",      "monorepo": true,      "nodeVersion": "string",      "outputDir": "string",      "packageManager": "string",      "packageManagerPinned": "string",      "port": 0,      "portSource": "script",      "provider": "string",      "signals": [        {          "detail": "string",          "path": "string"        }      ],      "startCommand": "string",      "static": true    },    "engine": "dockerfile"  },  "cache": {    "cachedSteps": 0,    "totalSteps": 0  },  "clusterId": "string",  "commitMessage": "string",  "commitSha": "string",  "createdAt": "2019-08-24T14:15:22Z",  "environmentId": "string",  "error": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "imageRef": "string",  "kind": "string",  "number": 0,  "releaseError": "string",  "releaseErrorAt": "2019-08-24T14:15:22Z",  "repository": "string",  "repositoryConfig": {    "commit": "string",    "path": "string",    "problems": [      {        "line": 0,        "message": "string",        "path": "string"      }    ],    "source": "string",    "status": "absent",    "summary": "string"  },  "serviceId": "string",  "startedAt": "2019-08-24T14:15:22Z",  "status": "string",  "steps": [    {      "finishedAt": "2019-08-24T14:15:22Z",      "name": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "trigger": "string"}
POST/api/v1/builds/{id}/cancel

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/builds/string/cancel"
{  "$schema": "https://example.com/BuildDTO.json",  "actorUserId": "string",  "branch": "string",  "builder": {    "detection": {      "buildCommand": "string",      "buildable": true,      "framework": "string",      "installCommand": "string",      "monorepo": true,      "nodeVersion": "string",      "outputDir": "string",      "packageManager": "string",      "packageManagerPinned": "string",      "port": 0,      "portSource": "script",      "provider": "string",      "signals": [        {          "detail": "string",          "path": "string"        }      ],      "startCommand": "string",      "static": true    },    "engine": "dockerfile"  },  "cache": {    "cachedSteps": 0,    "totalSteps": 0  },  "clusterId": "string",  "commitMessage": "string",  "commitSha": "string",  "createdAt": "2019-08-24T14:15:22Z",  "environmentId": "string",  "error": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "imageRef": "string",  "kind": "string",  "number": 0,  "releaseError": "string",  "releaseErrorAt": "2019-08-24T14:15:22Z",  "repository": "string",  "repositoryConfig": {    "commit": "string",    "path": "string",    "problems": [      {        "line": 0,        "message": "string",        "path": "string"      }    ],    "source": "string",    "status": "absent",    "summary": "string"  },  "serviceId": "string",  "startedAt": "2019-08-24T14:15:22Z",  "status": "string",  "steps": [    {      "finishedAt": "2019-08-24T14:15:22Z",      "name": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "trigger": "string"}
GET/api/v1/builds/{id}/logs

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

cursor?string

Opaque cursor from a previous response's nextCursor. Omit for the first page.

limit?integer

How many lines to return.

Formatint64
Range1 <= value <= 1000
Default200

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/builds/string/logs"
{  "$schema": "https://example.com/PageBuildLogLineDTO.json",  "items": [    {      "at": "2019-08-24T14:15:22Z",      "seq": 0,      "text": "string"    }  ],  "nextCursor": "string"}
GET/api/v1/builds/{id}/logs/stream

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

text/event-stream

application/problem+json

curl -X GET "https://example.com/api/v1/builds/string/logs/stream"
[  {    "data": {      "at": "2019-08-24T14:15:22Z",      "seq": 0,      "text": "string"    },    "event": "log",    "id": 0,    "retry": 0  }]
POST/api/v1/builds/{id}/retry

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/builds/string/retry"
{  "$schema": "https://example.com/BuildDTO.json",  "actorUserId": "string",  "branch": "string",  "builder": {    "detection": {      "buildCommand": "string",      "buildable": true,      "framework": "string",      "installCommand": "string",      "monorepo": true,      "nodeVersion": "string",      "outputDir": "string",      "packageManager": "string",      "packageManagerPinned": "string",      "port": 0,      "portSource": "script",      "provider": "string",      "signals": [        {          "detail": "string",          "path": "string"        }      ],      "startCommand": "string",      "static": true    },    "engine": "dockerfile"  },  "cache": {    "cachedSteps": 0,    "totalSteps": 0  },  "clusterId": "string",  "commitMessage": "string",  "commitSha": "string",  "createdAt": "2019-08-24T14:15:22Z",  "environmentId": "string",  "error": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "imageRef": "string",  "kind": "string",  "number": 0,  "releaseError": "string",  "releaseErrorAt": "2019-08-24T14:15:22Z",  "repository": "string",  "repositoryConfig": {    "commit": "string",    "path": "string",    "problems": [      {        "line": 0,        "message": "string",        "path": "string"      }    ],    "source": "string",    "status": "absent",    "summary": "string"  },  "serviceId": "string",  "startedAt": "2019-08-24T14:15:22Z",  "status": "string",  "steps": [    {      "finishedAt": "2019-08-24T14:15:22Z",      "name": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "trigger": "string"}
POST/api/v1/env-template/parse

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/env-template/parse" \  -H "Content-Type: application/json" \  -d '{    "text": "string"  }'
{  "$schema": "https://example.com/ParseEnvTemplateOutputBody.json",  "keys": [    {      "comment": "string",      "example": "string",      "existing": true,      "generateSuggested": true,      "key": "string",      "placeholder": true,      "providedBy": "project",      "required": true,      "secretSuggested": true    }  ]}
POST/api/v1/repository-config/detect

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/repository-config/detect" \  -H "Content-Type: application/json" \  -d '{    "branch": "string"  }'
{  "$schema": "https://example.com/DetectRepositoryConfigDto.json",  "base": {    "buildArgs": {      "property1": "string",      "property2": "string"    },    "builder": "string",    "dependsOn": [      "string"    ],    "dockerfile": "string",    "env": {      "property1": "string",      "property2": "string"    },    "hasProcesses": true,    "mounts": [      {        "destination": "string",        "initialSize": 0,        "processes": [          "string"        ],        "source": "string"      }    ],    "processes": [      {        "checks": {          "liveness": "string",          "readiness": "string",          "startup": "string"        },        "cmd": [          "string"        ],        "cpu": {          "limit": 0,          "request": 0        },        "drainSeconds": 0,        "entrypoint": [          "string"        ],        "kind": "string",        "memory": {          "limit": 0,          "request": 0        },        "metrics": {          "enabled": true,          "path": "string",          "port": 0        },        "name": "string",        "port": 0,        "replicas": 0,        "runAsUser": 0,        "schedule": "string",        "stabilizationSeconds": 0      }    ],    "releaseCommand": [      "string"    ],    "releaseCommandTimeoutSeconds": 0,    "target": "string"  },  "commit": "string",  "databases": [    "string"  ],  "message": "string",  "path": "string",  "problems": [    {      "line": 0,      "message": "string",      "path": "string"    }  ],  "services": [    "string"  ],  "source": "string",  "status": "absent",  "summary": "string"}
POST/api/v1/repository-config/detect-project

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/repository-config/detect-project" \  -H "Content-Type: application/json" \  -d '{    "branch": "string"  }'
{  "$schema": "https://example.com/DetectProjectDto.json",  "commit": "string",  "envTemplate": {    "$schema": "https://example.com/EnvTemplateDto.json",    "keys": [      {        "comment": "string",        "example": "string",        "existing": true,        "generateSuggested": true,        "key": "string",        "placeholder": true,        "providedBy": "project",        "required": true,        "secretSuggested": true      }    ],    "message": "string",    "reason": "unreadable-host",    "source": {      "commit": "string",      "path": "string",      "repository": "string"    }  },  "message": "string",  "result": {    "buildCommand": "string",    "buildable": true,    "framework": "string",    "installCommand": "string",    "monorepo": true,    "nodeVersion": "string",    "outputDir": "string",    "packageManager": "string",    "packageManagerPinned": "string",    "port": 0,    "portSource": "script",    "provider": "string",    "signals": [      {        "detail": "string",        "path": "string"      }    ],    "startCommand": "string",    "static": true  }}
GET/api/v1/services/{id}/builds

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

cursor?string

Opaque cursor from a previous response's nextCursor. Omit for the first page.

limit?integer

How many items to return.

Formatint64
Range1 <= value <= 200
Default50
environmentId?string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string/builds"
{  "$schema": "https://example.com/PageBuildDTO.json",  "items": [    {      "$schema": "https://example.com/BuildDTO.json",      "actorUserId": "string",      "branch": "string",      "builder": {        "detection": {          "buildCommand": "string",          "buildable": true,          "framework": "string",          "installCommand": "string",          "monorepo": true,          "nodeVersion": "string",          "outputDir": "string",          "packageManager": "string",          "packageManagerPinned": "string",          "port": 0,          "portSource": "script",          "provider": "string",          "signals": [            {              "detail": "string",              "path": "string"            }          ],          "startCommand": "string",          "static": true        },        "engine": "dockerfile"      },      "cache": {        "cachedSteps": 0,        "totalSteps": 0      },      "clusterId": "string",      "commitMessage": "string",      "commitSha": "string",      "createdAt": "2019-08-24T14:15:22Z",      "environmentId": "string",      "error": "string",      "finishedAt": "2019-08-24T14:15:22Z",      "id": "string",      "imageRef": "string",      "kind": "string",      "number": 0,      "releaseError": "string",      "releaseErrorAt": "2019-08-24T14:15:22Z",      "repository": "string",      "repositoryConfig": {        "commit": "string",        "path": "string",        "problems": [          {            "line": 0,            "message": "string",            "path": "string"          }        ],        "source": "string",        "status": "absent",        "summary": "string"      },      "serviceId": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string",      "steps": [        {          "finishedAt": "2019-08-24T14:15:22Z",          "name": "string",          "startedAt": "2019-08-24T14:15:22Z",          "status": "string"        }      ],      "trigger": "string"    }  ],  "nextCursor": "string"}
POST/api/v1/services/{id}/builds

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/services/string/builds" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string"  }'
{  "$schema": "https://example.com/BuildDTO.json",  "actorUserId": "string",  "branch": "string",  "builder": {    "detection": {      "buildCommand": "string",      "buildable": true,      "framework": "string",      "installCommand": "string",      "monorepo": true,      "nodeVersion": "string",      "outputDir": "string",      "packageManager": "string",      "packageManagerPinned": "string",      "port": 0,      "portSource": "script",      "provider": "string",      "signals": [        {          "detail": "string",          "path": "string"        }      ],      "startCommand": "string",      "static": true    },    "engine": "dockerfile"  },  "cache": {    "cachedSteps": 0,    "totalSteps": 0  },  "clusterId": "string",  "commitMessage": "string",  "commitSha": "string",  "createdAt": "2019-08-24T14:15:22Z",  "environmentId": "string",  "error": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "imageRef": "string",  "kind": "string",  "number": 0,  "releaseError": "string",  "releaseErrorAt": "2019-08-24T14:15:22Z",  "repository": "string",  "repositoryConfig": {    "commit": "string",    "path": "string",    "problems": [      {        "line": 0,        "message": "string",        "path": "string"      }    ],    "source": "string",    "status": "absent",    "summary": "string"  },  "serviceId": "string",  "startedAt": "2019-08-24T14:15:22Z",  "status": "string",  "steps": [    {      "finishedAt": "2019-08-24T14:15:22Z",      "name": "string",      "startedAt": "2019-08-24T14:15:22Z",      "status": "string"    }  ],  "trigger": "string"}
GET/api/v1/services/{id}/env-template

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

environmentId*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string/env-template?environmentId=string"
{  "$schema": "https://example.com/EnvTemplateDto.json",  "keys": [    {      "comment": "string",      "example": "string",      "existing": true,      "generateSuggested": true,      "key": "string",      "placeholder": true,      "providedBy": "project",      "required": true,      "secretSuggested": true    }  ],  "message": "string",  "reason": "unreadable-host",  "source": {    "commit": "string",    "path": "string",    "repository": "string"  }}