One job. That's the whole install.
No GitHub App to authorize, no webhook to route, no bot user to manage. Your CI pipes the diff to Normik with a workspace token; the HTTP status code carries the verdict — 422 blocks the merge, 200 lets it through.
CI code review
Every pull request checked against your playbook — from GitHub Actions or GitLab CI, with nothing to install and nothing to trust but your own pipeline.
# The whole integration — GitHub Actions or GitLab CI
- run: |
git diff "origin/main...HEAD" |
curl -sS --fail-with-body -X POST "$NORMIK_URL/api/ci/gate" \
-H "Authorization: Bearer $NORMIK_TOKEN" --data-binary @-No GitHub App to authorize, no webhook to route, no bot user to manage. Your CI pipes the diff to Normik with a workspace token; the HTTP status code carries the verdict — 422 blocks the merge, 200 lets it through.
On GitHub Actions, the job posts the violation summary as a PR comment using its own GITHUB_TOKEN. On GitLab, the same summary lands as a merge-request note once you set a project token — GitLab's built-in job token can't write notes. Your reviewers see path, line, severity and the rule that was broken — inside the review, not in a CI log.
If your API key is missing or the model provider is down, the check passes and says why. A quality gate should catch bad code — never hold your delivery hostage to a third-party incident. Ours can't: it fails open by design.
Severity is part of each rule: error blocks the merge, warning and info surface without blocking. And Normik only flags lines actually added in the diff — a model can't hallucinate a violation onto code you didn't touch.
The diff is analyzed in memory on your own API key and never stored. What we keep is the outcome: which rules were checked, what was violated, on which line — the material for your compliance dashboard.
Each run lands in the Analyses history with its violations, feeds the compliance rate, and its token usage is tracked per provider. Governance needs receipts.
The rules behind the gate live in your playbook — and your agents can fix violations before the commit.