Skip to main content

ovecc gate

The CI gate: fails when a change introduces new cycles, violations, or quality regressions (security / dead code / complexity counts) versus a base snapshot. Counts only — use review for the names.

Usage: ovecc gate [OPTIONS] [BASE] [HEAD]

Example

$ ovecc gate
Gate: fail (snapshot:85ee2372… -> snapshot:5ab78093…)
New cycles: 1, new modules: 0, new deps: 4, risk: Medium
- 1 new circular-dependency component(s)
- diff risk Medium crosses --fail-on Any
- 4 new dependency edge(s)
- 1 new boundary violation(s)
- 6 new security finding(s)
- 1 new high-complexity function(s)
- 2 new unused export(s)

Exit code 1 — and the verdict payload is still printed in full, so the failing CI step carries its own explanation (in JSON too: a failing gate returns the complete envelope).

Options

OptionDefaultEffect
[BASE] [HEAD]previous latestSnapshot ids or Git refs
--fail-on <medium|high|any>anyany fails on any architectural change; medium/high fail on new findings at that severity

Plus the global options.

Choosing a threshold

ThresholdBehaviorUse when
any (default)Any new cycle, violation, or regression failsGreenfield / strict repos
mediumNew medium+ findings failBalanced default for most teams
highOnly new high/critical findings failLegacy codebases digging out
  • review — the same verdict, with names and evidence
  • CI integration — pipelines for GitHub, GitLab, and generic CI