Expand description
GitLab CI/CD ecosystem support for deps-lsp.
Provides LSP features for .gitlab-ci.yml and .gitlab/ci/*.yml/*.yaml files.
include: - project: org/proj + ref: pins are resolved against the GitLab
repository-tags API. include: - component: host/org/proj/name@ref pins are resolved
against the GitLab CI/CD Catalog’s project-releases API — a component version is a
Release, never a raw tag. Self-hosted GitLab instances are supported via
registries.gitlab_instance_host.
§Pin contract
| Include form | pin | Resolved against |
|---|---|---|
project: org/proj + ref: <40-hex sha> | types::PinStyle::Sha | /repository/tags |
project: org/proj + ref: v1.2.3 (exact tag) | types::PinStyle::Tag | /repository/tags |
project: org/proj + ref: main (branch) | types::PinStyle::Branch | not resolved |
project: org/proj (no ref:) | None | not resolved |
component: host/org/proj/name@<40-hex sha> | types::PinStyle::Sha | /releases |
component: host/org/proj/name@1.0 (exact release) | types::PinStyle::Tag | /releases |
component: host/org/proj/name@~latest | types::PinStyle::Latest | /releases |
component: host/org/proj/name@1.2 (partial semver) | types::PinStyle::Partial | /releases |
component: host/org/proj/name@some-branch | types::PinStyle::Branch | not resolved |
include: - template: ... and include: - remote: ... are recognized and skipped
(spec FR-003) — not version-pinnable. image:/services: Docker tags are out of scope
entirely (spec FR-016) and never parsed.
Re-exports§
pub use ecosystem::GitlabCiEcosystem;pub use formatter::GitlabCiFormatter;pub use host::GitlabHost;pub use host::GitlabInstanceHost;pub use host::is_valid_gitlab_coordinate;pub use parser::parse_gitlab_ci_yaml;pub use registry::GitlabCiRegistry;pub use types::EndpointKind;pub use types::GitlabCiDependency;pub use types::GitlabCiParseResult;pub use types::GitlabCiVersion;pub use types::HostRef;pub use types::IncludeKind;pub use types::PinStyle;
Modules§
- client
- GitLab REST API client — fetches repository tags (
project:includes) and project releases (component:includes) from a per-call, per-instance host. - component
component:include pin classification and resolution.- ecosystem
- GitLab CI ecosystem implementation for deps-lsp.
- formatter
- GitLab CI ecosystem formatter.
- host
- GitLab instance host validation and resolution.
- parser
.gitlab-ci.yml-syntax parser usingyaml-rust2’s event-driven (MarkedEventReceiver) API.- registry
GitlabCiRegistry— thedeps_core::Registryimplementation for GitLab CI.- types
- GitLab CI dependency and version types.
Constants§
- UNRESOLVED_
HOST_ DIAGNOSTIC_ CODE - Stable [
tower_lsp_server::ls_types::Diagnostic::code] for the FR-012 informational unresolved-host diagnostic.