Severity thresholds
"No criticals" blocks a library nobody calls and passes a medium on the login route.
Evaluate your security policy in the deployment path. Keep signed decisions, supporting evidence and human-reviewed exceptions together.
Connect the artifact and scan results to the policy input.
Inspect the rules and failures behind the decision; uncertainty is not a silent pass.
Retain the gate decision and any accountable exception for later review.
A gate that blocks every critical blocks nothing for long, because teams route around it. The gates that last are the ones developers trust.
"No criticals" blocks a library nobody calls and passes a medium on the login route.
When the scanner is down the build goes green, so the gate is only as reliable as the least reliable tool.
A retry with the check disabled leaves no record of who decided what.
Every push re-posts every finding until developers mute the bot.
Policy lives in a YAML file per pipeline and drifts between them.
Risk acceptance happens in chat and never expires.
Policy over the graph, with every decision on the record.
esos ci scan --fail-on high or the gate evaluation API. Exit codes separate allow, deny and error, so a pipeline can tell a policy denial from an outage. See the CLI reference.Reachable, exposed issues stop the change; unreachable noise does not.
An outage is an error, never a green build.
GitHub, GitLab, Bitbucket, Azure DevOps and Jenkins evaluate the same Rego.
Rate-limited, superseding comments that developers keep reading.
Every decision and override lands in a hash-chained audit log.
Related: risk-based vulnerability management · container image security · IaC security · policy as code for deployment gates with OPA and Rego · SecurityVault for platform engineering · SecurityVault for developers.
We wire one repository, one policy and one pipeline, then show you the decision record.