Skip to main content

vulkro gate

Fail a build only on findings that are new compared with a git branch or commit, so existing debt never blocks a change.

vulkro gate --base origin/main

It scans the working tree and the base ref, and reports only findings in the working tree that are not in the base.

gate or scan --gate-vs​

  • vulkro gate --base <ref> compares the full findings of both trees. It catches a new caller that makes an old sink reachable.
  • vulkro scan --gate-vs <ref> only looks at changed lines. It is cheaper but misses that case.

A new finding marked Not checked (a class Vulkro flags but cannot decide offline, such as object-level authorization) is reported but never fails the gate. Set VULKRO_GATE_SEVERITY_ONLY=1 to let them fail it again.

Flags​

FlagDescription
[PATH]Project root. Default ..
--base <REF>Ref to compare against (main, origin/main, a SHA). Required unless VULKRO_GATE_BASE is set.
--format <FMT>table (default), json (totals plus new findings) or sarif (new findings only).

GitHub Actions​

- uses: actions/checkout@v4
with:
fetch-depth: 0 # the base ref must be in history
- run: vulkro gate --base origin/${{ github.base_ref }}

Exit codes​

CodeMeaning
0No new findings that fail the gate.
1New findings that fail the gate, or no active licence (license_required).
2Bad ref, git not available, or scan failure. Also 2 when no source file could be read.

Inside a git hook, a machine without a licence is never blocked: the gate exits 0 with a notice.

See also: vulkro install-hook, CI/CD integration.