auditron
One defensive security gate for a repository. Runs pip-audit (dependency CVEs),
bandit (Python SAST) and zizmor (GitHub Actions security) in a single pass, normalizes every
finding into one model, writes one report (JSON + SARIF 2.1.0), and exits 0/1 by a policy you
declare. Self-contained and pluggable: pip install auditron + one workflow, in any repo.
Defensive by design: auditron only reads and reports — it never attacks or runs exploits. Offensive tooling (pentest, LLM red-team) are documented lab companions, not part of this package (see Companions).
Quickstart
pip install auditron
auditron scan . # scan the repo; exit 1 if a blocking engine finds something
auditron scan . --sarif out.sarif # emit SARIF 2.1.0 for GitHub code scanning
auditron scan . --only bandit # run a single engine
Drop it into CI (copy examples/auditron.yml into .github/workflows/):
- run: pip install auditron
- run: auditron scan . --sarif auditron.sarif
- uses: github/codeql-action/upload-sarif@<pinned> # optional: findings as code-scanning alerts
with: { sarif_file: auditron.sarif }
What it bundles
| Engine | License | Covers | SARIF level |
|---|---|---|---|
| pip-audit | Apache-2.0 | known CVEs in requirements*.txt |
error |
| bandit | Apache-2.0 | Python SAST (-ll -ii, medium+) |
HIGH→error, MEDIUM→warning, LOW→note |
| zizmor | MIT/Apache-2.0 | GitHub Actions security | passthrough |
The exact version of each engine is recorded in every report and in each SARIF run, so the
evidence is reproducible.
Policy (auditron.toml)
Without a config, the default is: all three engines run; only pip-audit blocks (a known CVE in
a dependency is factual), while bandit/zizmor report until the repo triages their findings. Override
per engine:
[auditron]
blocking = ["pip-audit", "bandit"] # which engines fail the gate
disabled = ["zizmor"] # which engines don't run at all
An engine that errors (not installed, bad output) never passes silently: if it is blocking, it blocks — absence of evidence is not evidence of absence.
Why auditron
Three first-class scanners already exist and are excellent. What is missing in most repos is the
glue: one install, one command, one policy, one SARIF, one exit code — and a design that lets you
lift it into its own repository unchanged. auditron is that glue, and nothing more. See
POSITIONING.md for the honest comparison with rolling your own, with pre-commit,
and with hosted scanners.
Companions (offensive, lab-only)
auditron is defensive. For adversarial testing, use these in a lab, never in the production gate:
- Strix (pentest de app, confirma falhas com PoC) —
docs/ops/STRIX-LAB.mdno projecto-mãe. - Garak / promptfoo (red-team de LLM: prompt injection, jailbreak) —
docs/ops/SECURITY-TOOLS.md.
License
MIT (see LICENSE). Bundled engines keep their own licenses (NOTICE).
Metadata
Release files for auditron 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| auditron-0.1.0.tar.gz | 16.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| auditron-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.4 kB
Release files / auditron-0.1.0.tar.gz
| Download URL | auditron-0.1.0.tar.gz |
|---|---|
| Size | 16.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c311a6f2f1e2bf6dd6ca4ef700260b64262b3ab385f0c66de0dd896279850f9c
|
|
BLAKE2b-256 checksum How to use checksums |
8ba5e6205d11428e754afad0a2da1f63dfc9f3ed4986a2630a5337e947c41379
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency logRelease files / auditron-0.1.0-py3-none-any.whl
| Download URL | auditron-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
675553e0a655275ea4b1808b22dfc8a99510790e8dff7b07cbd7131740abbe5d
|
|
BLAKE2b-256 checksum How to use checksums |
c34a6da1c1226ac4a854b54f37ff372de9d87a4fe8cadfde1b9820e7674908be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency log