Buildpipeline-components
GET/repositories/{repo_id}/pipeline-components
List the components a repository's pipelines may reference
list_repo_pipeline_components
pipeline:read
A token needs thepipeline:readscope: View pipeline runs and definitionsGranted byread_api,read_repository,write_api,write_repository.Every operation this scope unlocksFiltered across resources
x-gitmoap-isolation: {"kind":"cross_resource_filtered"}
Paginated
Pass thenext_tokena page returns to get the next one.
Returns this repository's own components together with those of every group above it; when two
declare the same name, the nearest wins. A component whose providers are not installed here is
listed and marked rather than hidden, and one owned by a group you cannot read is left out.
Filter with search (name and description) or own_scope_only; pages hold up to 100 components
(20 by default) and continue with next_token.
Parameters
Path
- repo_idRepositoryId (string · uuid)The repository's id
Query
- searchstringoptionalMatch on name and description
- own_scope_onlybooleanoptionalExclude components inherited from parent groups
- limitinteger · int32optionalPage size (1-100, default 20)
- next_tokenstringoptionalOpaque pagination cursor
Responses
200The components usable here — this scope's own plus every parent group's, with the nearest declaration of a name winning. A component whose providers are not installed here is listed and marked rather than hiddenapplication/json
itemsarray of ComponentListItem
- The ComponentListItem schema
bodyComponentBodyThe draft: what the next published version will contain.
- The ComponentBody schema
- component_instancesarray of NestedComponentInstanceoptionalOther components this component uses. Always empty in a published version, where they have already been expanded into steps.
- edgesarray of EdgeoptionalConnections between the component's own steps; both ends must be steps of this component.
- stage_slotsarray of StageSlot (string)optionalThe positions the component's steps occupy, in order. A pipeline using the component maps each slot to one of its own stages.
- created_atstring
created_byActorSummary
- The ActorSummary schema
- emailstring
- idstring
- usernamestring
- avatar_urlstring or nulloptional
- idComponentId (string · uuid)
- inheritedbooleanWhether the component belongs to a group above the group or repository being listed, rather than to it.
- nameComponentName (string)
- scopeScopeRef
- updated_atstring
- version_countinteger · int640–∞
- descriptionstring or nulloptional
diagnosticsValidationSummary or nulloptionalProblems found in the draft. A draft is saved even when it is invalid.
- The ValidationSummary schema
- validboolean
- violationsarray of ValidationViolation
- warningsarray of ValidationWarningoptionalThings worth knowing that do not make the definition invalid, such as a deprecated component version. A violation stops a published definition from being saved; a warning never does. Left out when there are none.
- latest_versionComponentVersion (string) or nulloptional
- unsatisfied_capabilitiesarray of CapabilityId (string)optionalCapabilities the latest active version needs that no provider installed here supplies. Left out when there are none.
versionsarray of ComponentVersionSummaryoptionalPublished versions, newest first. Present on a single-component read.
- The ComponentVersionSummary schema
- capability_requirementsarray of CapabilityId (string)The provider capabilities the version's steps use.
- contract_digeststringA SHA-256 fingerprint, in hex, of what a pipeline using the version must satisfy: its parameters, its ports and the variables it reads. It changes only when that contract does.
- depthinteger · int320–∞How many levels of components the version spans: 1 when it uses no other component.
- expanded_node_countinteger · int320–∞How many steps the version expands into.
- lifecycle_stateComponentLifecycleStateactivedeprecatedsunsetWhere a published version sits in its retirement. A
deprecatedversion still resolves for an exact reference and still runs, but no floating reference selects it — which is what makes deprecating the safe way to retire one. Asunsetversion refuses to resolve at all, exact reference included. - published_atstring
- published_byActorSummary
- variable_requirementsarray of EnvironmentVariableName (string)The variables the version's steps read from the pipeline that uses it. Each must be declared on the environment those steps run in, or on a group or repository above the pipeline, or a run is refused when it starts.
- versionComponentVersion (string)
- changelogstring or nulloptional
- next_tokenstring or nulloptional
200 exampleSynthesized example
{
"items": [
{
"body": {},
"created_at": "2026-10-17T06:31:32Z",
"created_by": {
"email": "mara@acme.example",
"id": "id-231f",
"username": "tomas"
},
"id": "b9f2e184-2a58-40cc-9d63-62c6c5be6f45",
"inherited": false,
"name": "payments-api",
"scope": {
"group": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69"
},
"updated_at": "2026-10-12T16:29:01Z",
"version_count": 4
}
],
"next_token": "next-token-91a2"
}
400Malformed cursor or page sizeapplication/json
Error codes
- BAD_REQUESTThe request is malformed: a parameter or a body field is not a well-formed value of its type
errorErrorBody
- The ErrorBody schema
- codestringThe coarse category, tied to the status:
NOT_FOUND,CONFLICT,INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all. - messagestringWhat went wrong, for a person. Written to be read, not parsed: match on
reasonorcode. - fieldstring or nulloptionalOn a
400that refused one field's value, the field, as its JSON path:email,items[0].name. Put the message under that input. Absent on every other error. - reasonstring or nulloptionalThe specific code, when the error has one:
LAST_ORGANIZATION_OWNER,BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
400 exampleSynthesized example
{
"error": {
"code": "code-8453",
"message": "Label every synthesized example"
}
}
401Unauthenticated — no credential, or an invalid oneapplication/json
Error codes
- UNAUTHORIZEDNo credential was sent, or the one sent is invalid, expired or revoked
errorErrorBody
- The ErrorBody schema
- codestringThe coarse category, tied to the status:
NOT_FOUND,CONFLICT,INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all. - messagestringWhat went wrong, for a person. Written to be read, not parsed: match on
reasonorcode. - fieldstring or nulloptionalOn a
400that refused one field's value, the field, as its JSON path:email,items[0].name. Put the message under that input. Absent on every other error. - reasonstring or nulloptionalThe specific code, when the error has one:
LAST_ORGANIZATION_OWNER,BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
401 exampleSynthesized example
{
"error": {
"code": "code-c3ac",
"message": "Stream pipeline status into the run header"
}
}
403Reporter is required to read componentsapplication/json
Error codes
- FORBIDDENYou are signed in but may not do this here;
reasonnames the permission or the rule that refused it - INSUFFICIENT_SCOPEThe access token lacks the scope this operation needs;
required_scopenames it - PERMISSION_REQUIREDYou need a permission you do not hold here; the message names it
errorErrorBody
- The ErrorBody schema
- codestringThe coarse category, tied to the status:
NOT_FOUND,CONFLICT,INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all. - messagestringWhat went wrong, for a person. Written to be read, not parsed: match on
reasonorcode. - fieldstring or nulloptionalOn a
400that refused one field's value, the field, as its JSON path:email,items[0].name. Put the message under that input. Absent on every other error. - reasonstring or nulloptionalThe specific code, when the error has one:
LAST_ORGANIZATION_OWNER,BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
403 exampleSynthesized example
{
"error": {
"code": "code-ba13",
"message": "Draw the region map from operation density"
}
}
404No such repository, or it is not visible to the callerapplication/json
Error codes
- NOT_FOUNDThe resource does not exist — or exists and you cannot see it: a private resource you have no access to answers exactly as an absent one does
errorErrorBody
- The ErrorBody schema
- codestringThe coarse category, tied to the status:
NOT_FOUND,CONFLICT,INSUFFICIENT_SCOPE. Every error has one; the API reference's error catalogue lists them all. - messagestringWhat went wrong, for a person. Written to be read, not parsed: match on
reasonorcode. - fieldstring or nulloptionalOn a
400that refused one field's value, the field, as its JSON path:email,items[0].name. Put the message under that input. Absent on every other error. - reasonstring or nulloptionalThe specific code, when the error has one:
LAST_ORGANIZATION_OWNER,BRANCH_PROTECTED. The message starts with it too. Match on this when it is present, and oncodeotherwise. - required_scopestring or nulloptionalThe scope the access token was missing, on
INSUFFICIENT_SCOPE. - violationsanyoptionalPresent on the structured-validation errors (
PROVIDER_VALIDATION_FAILEDper-node,PIPELINE_VALIDATION_FAILEDDAG): a JSON array of the offending elements, so a caller can fix every one in a single round-trip. Absent (omitted) on every other error.
404 exampleSynthesized example
{
"error": {
"code": "code-3ef6",
"message": "Inline scalar newtypes but keep their brand"
}
}
CLI
gitmoap pipeline-components list-repo-pipeline-components
- --repo-ididThe repository's id (id or owner/repo path)
- --limitnumberoptionalPage size (1-100, default 20)
- --next-tokenstringoptionalOpaque pagination cursor
- --own-scope-onlyflagoptionalExclude components inherited from parent groups
- --searchstringoptionalMatch on name and description