Exit codes (breaking change from exit 1):
- 0 clean (no findings)
- 2 one or more errors
- 10 one or more warnings, no errors
Errors take precedence over warnings.
glint check --no-warn:
Discard warning findings before output and exit-code calculation.
Mixed pipelines (errors + warnings) still exit 2 but only errors print.
Warnings-only pipelines exit 0 with "OK" when --no-warn is set.
glint render <PIPELINE>:
New subcommand. Resolves all include: and extends: chains, then writes
a single flat .gitlab-ci.yml (default: rendered.gitlab-ci.yml, or
stdout with --output -). Strips consumed keys (include:, extends:).
Template jobs (.) are retained. Flags: --output, --token, --gitlab-url,
--cache-dir, --offline, --proxy (all with .glint.yml fallback).
To support render, Resolve() now writes the merged raw map back to
p.RawJobs[name] and also preserves j.Column from the original job.
glint graph --no-skipped:
Removes jobs that evaluate to JobSkipped in the given context before
any graph function sees the pipeline. Works for tree, pipeline (SVG,
HTML, Mermaid), includes, and all modes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Workflow rules now use strict if: evaluation (parse failure → skip rule,
not match); fixes premature matching that blocked later rules and injected
wrong variables into the context
- Single = accepted as alias for == in rules:if: expressions
- File/Line preserved through extends: resolution (lost during YAML
encode/decode round-trip in the resolver)
- Findings sorted by (File, Line, Rule) so same-file issues group together
- All warnings use ruff-style path: [warning] message format (includes,
extends chains, workflow non-start)
- Add --version / -v flag; version shown at top of every --help output
- Build injects version via ldflags using git describe
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>