Skip to content

Where the pipelines of these runs stand

GET
/v1/projects/{id}/integrations/ci/launches
curl --request GET \
--url 'https://beta-api.plune.ai/v1/projects/example/integrations/ci/launches?runs=example' \
--cookie plune_session=<plune_session>

Every member, a reader too. ?runs= names 1 to 200 runs of the project (a list, or the key repeated); the answer holds a launch for each that has one, and nothing for the rest — another project’s run among them included. Plune asks GitHub about every pipeline still going once a minute; this reads what it last saw. Session cookie only.

id
required
string

An id from GET /v1/projects

runs
required
string

Run ids, comma-separated

The launches of the runs named

Media type application/json
object
launches
required
Array<object>

A run’s automated part started in CI, and where Plune last saw its pipeline. state: scheduled (saved, nothing sent) · refused (GitHub would not start it; code says why) · queued · running · completed (it ended, nothing in the run yet: 5 more minutes for the reporter) · reported · not_started (queued 15 minutes; Plune cancelled it) · no_report · lost (24 hours after the dispatch) · cancelled (a person ended the run while its pipeline went on). In the last three and not_started the automated part is closed: an automated run is terminated, a mixed one goes on with its automated cases not run.

object
runId
required
string
provider
required
string
Allowed values: github gitlab circleci
repository
required
string
workflow
required
string
ref
required

The branch or tag tested. The workflow file is read from the connection’s own.

string
state
required
string
Allowed values: scheduled refused queued running completed reported not_started no_report lost cancelled
code
required

refused: why. A watched state: why the CI cannot be asked right now (not_connected: the connection was removed since).

string
nullable
Allowed values: unreachable rate_limited token_rejected repository_not_found actions_denied workflow_not_found workflow_disabled ref_not_found no_workflow_dispatch inputs_missing variables_denied address_refused unexpected not_connected
status
required

The HTTP status of an unexpected answer.

integer
nullable
runUrl
required

The run or pipeline page on the CI, from the dispatch’s own answer.

string
nullable
conclusion
required

The CI’s word for how it ended: success, failure, cancelled, failed, canceled, …

string
nullable
dispatchedBy
required
string
dispatchedAt
required
string format: date-time
nullable
startedAt
required
string format: date-time
nullable
completedAt
required
string format: date-time
nullable
unreachableSince
required

Since when the CI has not answered; Plune keeps waiting.

string format: date-time
nullable
updatedAt
required
string format: date-time
Example
{
"launches": [
{
"runId": "6f1c2b3a-0000-4000-8000-0000000000d1",
"provider": "github",
"repository": "plune-ai/cli",
"workflow": ".github/workflows/plune.yml",
"ref": "main",
"state": "queued",
"code": null,
"status": null,
"runUrl": "https://github.com/plune-ai/cli/actions/runs/900001",
"conclusion": null,
"dispatchedBy": "u-shop",
"dispatchedAt": "2026-09-16T09:12:04.151Z",
"startedAt": null,
"completedAt": null,
"unreachableSince": null,
"updatedAt": "2026-09-16T09:12:04.151Z"
}
]
}

runs names none, or more than 200

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

No / invalid session — a CLI token is refused here

No such project among yours

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

The server has no key to keep tokens under

Media type application/json
object
error
required
string
Example
{
"error": "integrations are not configured on this server — contact your operator"
}