Summary
Today redocly lint (via tools/openapi → npm run validate:openapi, run in CI's "OpenAPI contract validation and drift check" step) emits 7 warnings but exits 0, so nobody sees them and regressions accumulate silently. Once the known warnings are cleared (#1086, #1087), flip the safety net on so any new OpenAPI warning fails CI.
Change
In tools/openapi/package.json, make the lint fail on any problem:
(Alternatively, promote the specific rules to error in redocly.yaml. --max-problems 0 is broader — it also catches new warning types we haven't explicitly opted into.)
CI already invokes this via npm run validate:openapi in .github/workflows/ci.yml, so no workflow change is needed — the stricter script gates PRs automatically.
Blocked by
Both must land first, or this turns CI red.
Acceptance criteria
Notes
Summary
Today
redocly lint(viatools/openapi→npm run validate:openapi, run in CI's "OpenAPI contract validation and drift check" step) emits 7 warnings but exits 0, so nobody sees them and regressions accumulate silently. Once the known warnings are cleared (#1086, #1087), flip the safety net on so any new OpenAPI warning fails CI.Change
In
tools/openapi/package.json, make the lint fail on any problem:(Alternatively, promote the specific rules to
errorinredocly.yaml.--max-problems 0is broader — it also catches new warning types we haven't explicitly opted into.)CI already invokes this via
npm run validate:openapiin.github/workflows/ci.yml, so no workflow change is needed — the stricter script gates PRs automatically.Blocked by
Stream, 501-only/v1/completions)no-ambiguous-pathsfalse positives via lint-ignoreBoth must land first, or this turns CI red.
Acceptance criteria
lint:openapiexits non-zero on any redocly warning/error.Notes