Enforce assurance in your pipeline.
Simple API. Clear exit codes. Works with GitHub Actions, GitLab CI and any CI/CD system.
name: AI release gateon: [push, pull_request]jobs: gate: runs-on: ubuntu-latest steps: - name: Check Assurance OS release gate env: API_KEY: ${{ secrets.ASSURANCE_API_KEY }} GATE: ${{ vars.ASSURANCE_URL }}/api/v1/ci/release-gate SYSTEM_ID: ${{ vars.ASSURANCE_SYSTEM_ID }} run: | res=$(curl -fsS -H "X-Api-Key: $API_KEY" "$GATE?systemId=$SYSTEM_ID") echo "$res" | jq -r .content exit "$(echo "$res" | jq -r .exitCode)"Exit codes
PASS
Exit code 0
All mandatory controls satisfied.
REVIEW
Exit code 2
Non-blocking warnings or pending approvals.
BLOCKED
Exit code 1
Missing evidence, failed evaluations, open breaches or missing approvals.
Fail closed, explain why.
One read-only call
GET the release gate with an API key and the system ID. Nothing to install in your runner beyond curl.
Fails closed
If the decision is missing or unreadable, the gate returns BLOCKED, never PASS.
Blockers you can act on
The response lists every blocker, so the failing job tells the engineer what to fix.
REVIEW is your call
Treat REVIEW as a warning or a stop. BLOCKED always stops the job.
Scoped API keys
CI keys act with their creator's permissions and cannot create or revoke other keys.
Open-source scan
The same evidence can be checked locally with evgraph-cli, outside the platform.
Before AI ships, prove it is ready.
Free plan, no card. Gate your first AI system in CI today, or explore the live demo workspace.