PipelineRunView
One pipeline run in full: what started it, its status, and every stage, step and connection in its graph.
Shape
edgesarray of ResolvedEdgeThe connections between the run's steps, so a client can draw its graph. Each one feeds an output port of
from_nodeinto an input port ofto_node.- The ResolvedEdge schema
- from_nodeNodeId (string)
- to_nodeNodeId (string)
- from_portPortName (string) or nulloptionalAbsent on a dependency-only connection — one that orders two steps and carries nothing.
- to_portPortName (string) or nulloptionalAbsent on a dependency-only edge.
- last_event_idEventId (string · uuid)
nodesarray of NodeView
- The NodeView schema
- attemptinteger · int320–∞
- capability_idCapabilityId (string)The capability this step runs, as
{provider}:{name}(e.g.docker:build). historyarray of NodeAttemptRecordEarlier attempts of this step after retries, oldest first.
- The NodeAttemptRecord schema
- attemptinteger · int320–∞
- finished_atstringWhen the attempt ended, RFC 3339.
- node_run_idNodeRunId (string · uuid)
- statusNodeStatuspendingawaiting_approvaldispatchedrunningsucceededfailedtimed_outskippedcancelledWhere a step has got to.
- exit_codeinteger · int32 or nulloptional
- logs_hrefstringRelative URL of this step's logs.
- node_idNodeId (string)
- node_run_idNodeRunId (string · uuid)
- provider_idProviderId (string)The provider that runs this step (e.g.
docker), as chosen from the catalog when the run started. - stage_idStageId (string)
- stage_indexinteger · int320–∞
- statusNodeStatuspendingawaiting_approvaldispatchedrunningsucceededfailedtimed_outskippedcancelledWhere a step has got to.
- allow_failurebooleanoptionalThe author marked this step as allowed to fail: if it fails or times out, the stage and the run carry on (the run ends
succeeded_with_warnings) and only the steps that depend on it are skipped. Show such a failure as a warning. - duration_msinteger · int64 or nulloptional0–∞
- error_summarystring or nulloptionalWhy the step failed, skipped, timed out or was cancelled, in a sentence or two. For a step that failed after it ran, the same text as
failuredescribes. - exit_codeinteger · int32 or nulloptional
- failureNodeFailure or nulloptionalWhy a step that ran failed, as a cause a client can act on. Absent for a step that succeeded or never ran.
- finished_atstring or nulloptional
- namestringoptionalThe step's display name, as the pipeline's author wrote it when the run started. Empty for older runs recorded without one; show the capability instead.
originNodeOrigin or nulloptionalThe component this step was expanded from, when the author wrote a component instance rather than the step itself. Absent for a step the pipeline declares directly, and for runs that predate this field.
- The NodeOrigin schema
- component_idComponentId (string · uuid)
- component_nameComponentName (string)
- inner_node_idNodeId (string)This node's identifier inside the component body — what its author called it, before expansion prefixed it with the instance.
- instance_idNodeId (string)The component instance in the pipeline the author wrote.
- versionComponentVersion (string)The version the instance's reference resolved to.
- retry_afterstring or nulloptionalWhen the platform next checks whether a held step can start, RFC 3339 — the wait timer's expiry, or the next check of the concurrency lock. Absent when nothing is scheduled, including while waiting for an approval, which a person gives rather than a clock.
- started_atstring or nulloptional
- waiting_onNodeWaitKindapprovalwait_timerconcurrency_lockor nulloptionalWhy a step that has not started is being held: it is waiting for an approval, for an environment's wait timer, or for another run to release its concurrency lock. Absent for a step that is simply waiting for the steps before it.
- pipeline_namestring
- pipeline_run_idPipelineRunId (string · uuid)
- repo_idRepositoryId (string · uuid)
stagesarray of StageViewThe run's stages in execution order, each with how many of its steps have finished and failed.
- The StageView schema
- barrier_passedbooleanWhether every step in the stage has finished, so later stages may start.
- failed_countinteger · int320–∞Steps in the stage that failed or timed out, not counting steps allowed to fail.
- stage_idStageId (string)
- stage_indexinteger · int320–∞The stage's position in execution order, counting from zero.
- terminal_countinteger · int320–∞Steps in the stage that have finished, whatever their outcome.
- totalinteger · int320–∞Steps in the stage.
- started_atstring
- statusPipelineStatusrunningsucceededsucceeded_with_warningsfailedtimed_outcancelledPer-
PipelineRunstatus. triggerTriggerContext
- The TriggerContext schema
- repo_idRepositoryId (string · uuid)
- repo_pathstring
- before_shastring or nulloptionalThe commit the ref pointed at before the push — what a
pathsfilter compares against. On a run started by hand, the commit its starter named to compare from, if any. - branchstring or nulloptional
- buildMrBuildTargetmerge_resultsourceor nulloptionalWhich commit a merge-request-triggered run built.
- commit_shastring or nulloptional
- depthinteger · int32optional0–∞How many pushes made by pipeline runs led to this run, one after another;
0when no pipeline's push started it. - every_stepbooleanoptionalEvery step runs, whatever its path filter says — asked for by whoever started the run.
- extraobjectoptionalAdditional fields supplied by whatever started the run, passed along without being interpreted.
- kindTriggerKindpushmerge_requesttagschedulemanualoptionalWhat started this run.
- mr_idMergeRequestId (integer · int64) or nulloptional
- paramsobjectoptionalThe values a person supplied when starting the run, keyed by the parameter names the pipeline's manual trigger declares.
- ref_namestring or nulloptionalThe full ref (e.g.
refs/tags/v1.2.0). Set for runs a tag started, whichbranchcannot describe. - root_group_idGroupId (string · uuid) or nulloptionalThe organisation this run belongs to — the root group of the repository it was triggered for. Recorded when the run starts and never recalculated, so a repository moved to a different organisation part-way through a run keeps the artifacts, logs and cache it has already produced. Absent on runs that started before runs recorded this.
- schedule_stemstring or nulloptionalWhich scheduled trigger fired, when
kindisschedule. - source_shastring or nulloptionalThe source-branch commit this run tested: a merge request's source head for a merge-request run, whichever commit it built, and the commit itself for a push or manual run. Set by the platform; absent on a run whose graph the caller supplied, which never counts toward a merge request's pipelines.
- target_branchstring or nulloptionalThe merge request's target branch.
- target_shastring or nulloptionalThe target branch's tip this merge-request run was tested against. Once the target branch moves on, the merge check reports a merge-result run as out of date.
triggered_byActorSummaryoptionalWho started the run, set by the platform from the authenticated caller; a value supplied in a request is ignored.
- The ActorSummary schema
- emailstring
- idstring
- usernamestring
- avatar_urlstring or nulloptional
- trustTriggerTrusttrusteduntrustedoptionalWhether the code being built is trusted with the repository's connections and secrets. Set by the platform when the run starts, whatever a request says.
- trust_reasonTrustReason or nulloptionalWhy the run has the trust it has: who wrote the code, a person's merge or approval, or the organization's AI configuration. Absent on runs that started before this was recorded.
- versioninteger · int640–∞
- finished_atstring or nulloptional
- pipeline_idPipelineId (string · uuid) or nulloptionalThe pipeline definition this run was started from. Absent when that definition has since been deleted;
pipeline_namestill names what ran. - re_run_ofPipelineRunId (string · uuid) or nulloptional
Example
Synthesized example{
"edges": [
{
"from_node": "from-node-023e",
"to_node": "to-node-c09a"
},
{
"from_node": "from-node-6614",
"to_node": "to-node-a7fa"
}
],
"last_event_id": "0aa63981-af26-4f62-a349-39ef9f6f2b55",
"nodes": [
{
"attempt": 1,
"capability_id": "13a1d140-c0e2-4573-8e45-5a1e3418f8eb",
"history": [],
"logs_href": "logs-href-035a",
"node_id": "52dae412-b8c0-4bd7-9805-8056ccbe056d",
"node_run_id": "91751633-5128-4fea-be56-160fdcb0cf99",
"provider_id": "4c3703e4-2206-4141-aef2-e255e8ed13b0",
"stage_id": "133f3e96-96e5-424a-8df2-b6a687c928d6",
"stage_index": 1,
"status": "pending"
},
{
"attempt": 1,
"capability_id": "45a67c1d-dbd2-4fe8-8337-7416ac94b6b8",
"history": [],
"logs_href": "logs-href-74fd",
"node_id": "8d3f4086-82d6-4c49-9fcb-904c1954a239",
"node_run_id": "2052d05e-28e2-4852-bfc0-b2ee28c92c17",
"provider_id": "3fd88aa0-1523-4a10-a054-278b95e46635",
"stage_id": "67518fba-5bdd-4ef4-bfa2-44a2aa08efb6",
"stage_index": 7,
"status": "pending"
}
],
"pipeline_name": "payments-api",
"pipeline_run_id": "9e2b7c41-3d5a-4f8e-b1c2-7a6d5e4f3c2b",
"repo_id": "5b0e7c2a-9d14-4e8b-a6f1-2c3d4e5f6a70",
"stages": [
{
"barrier_passed": false,
"failed_count": 2,
"stage_id": "e92dea6f-aa91-41f7-b677-077f74e52d3e",
"stage_index": 7,
"terminal_count": 5,
"total": 3
},
{
"barrier_passed": false,
"failed_count": 4,
"stage_id": "5fc6cf25-ce85-40dd-a5f6-184b5da22778",
"stage_index": 2,
"terminal_count": 4,
"total": 3
}
],
"started_at": "2026-10-11T10:02:22Z",
"status": "running",
"trigger": {
"repo_id": "5b0e7c2a-9d14-4e8b-a6f1-2c3d4e5f6a70",
"repo_path": "repo-path-b84e",
"before_sha": "5dcdba2f59319c2984a71d0026d49327854d5dda",
"branch": "feat/run-header-stream",
"build": "merge_result",
"commit_sha": "f390d1c837936364195b501f897995f1c9850844",
"depth": 76,
"every_step": false,
"extra": {},
"kind": "push",
"mr_id": 42,
"params": {},
"ref_name": "payments-api",
"root_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"schedule_stem": "schedule-stem-0868",
"source_sha": "88673cb9183abd7c4643f434bad73ad3269acc5d",
"target_branch": "main",
"target_sha": "50d3a02460b73f5bbc1d679284a394a87f2dde1d",
"triggered_by": {
"email": "tomas@acme.example",
"id": "id-7c1a",
"username": "mara",
"avatar_url": "https://gitmoap.example/acme/f5bbb1d8"
},
"trust": "trusted",
"trust_reason": {
"kind": "written_by_people"
}
},
"version": 36,
"finished_at": "2026-10-15T11:13:51Z",
"pipeline_id": "f8d92ba9-fd4e-4c1f-8a17-6c6b712d6169",
"re_run_of": "9e2b7c41-3d5a-4f8e-b1c2-7a6d5e4f3c2b"
}
Graph
Used inside
No schema contains this one.
Used by
Sent by 0 operations
No operation takes it as a request body.
Returned by 1 operation