mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 12:22:14 +03:00
New advisory gate (Fase 8 B.4) that diffs the public API contract docs/reference/openapi.yaml against the base branch via oasdiff, surfacing removed endpoints, newly-required params, removed response fields, etc. - scripts/check/check-openapi-breaking.mjs: resolves base spec via git show <BASE_REF>:docs/reference/openapi.yaml to a temp file, runs oasdiff breaking --format json, parses+counts breaking changes, emits openapiBreaking=N (KEY=VALUE for collect-metrics). ADVISORY: exit 0 always; graceful SKIP when oasdiff is absent or the base spec can't be resolved. - package.json: check:openapi-breaking script. - .github/workflows/ci.yml (quality-extended, advisory): install oasdiff via gh release download, add the breaking-change step (BASE_REF via env, never shell-interpolated), fetch-depth: 0 so git show can read the base spec. - tests/unit/build/check-openapi-breaking.test.ts: parser counting/grouping + binary-absent SKIP integration. - docs/architecture/QUALITY_GATES.md: document the quality-extended job table. - docs/reference/openapi.yaml: define the BadRequest/NotFound/InternalError response components that were referenced (14 call sites) but never defined — a pre-existing dangling-$ref defect that blocked oasdiff from loading the spec. No path behavior changes; purely additive to components.responses.