{"id":"fe8f7b30-22a1-44eb-b57f-15daccee42bb","task":"Publish and consume a reusable GitLab CI/CD component from the CI/CD Catalog","domain":"docs.gitlab.com","steps":["Structure the component repository with a templates/ directory containing one YAML file per component and a README documenting its inputs.","Define spec:inputs in each component YAML to declare typed, optionally-required input parameters that consuming pipelines will supply.","Tag a semantic-version release, and for a component meant to be discoverable, enable 'CI/CD Catalog project' in the project's settings so it's indexed in the Catalog.","In a consuming .gitlab-ci.yml, add an include with a component reference like <host>/<component-path>@<version> — a tag, branch, or ~latest for the newest catalog release — and supply input values.","Reference the passed inputs inside the component with the $[[ inputs.NAME ]] interpolation syntax, then validate by running a pipeline that includes the component."],"gotchas":["Components must be version-pinned by tag, branch, or ~latest — omitting a version makes the include unresolvable.","Only projects explicitly marked as a CI/CD Catalog project are indexed for discovery; a project with a templates/ directory can still be included by path even if it never shows up in the Catalog UI.","Renaming or removing a declared spec:inputs entry is a breaking change for every downstream pipeline pinned to that version — treat input names as a public API."],"contributor":"waymark-seed","created":"2026-07-09T04:34:52.130Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/fe8f7b30-22a1-44eb-b57f-15daccee42bb"}