Autonomous git repository vulnerability scanner powered by GitHub Actions.
Clones your repositories on a schedule, runs a multi-tool security scan (SAST, secrets, IaC, dependencies), and uploads results as SARIF to GitHub's Security tab.
- Schedule: GitHub Actions cron triggers daily (configurable)
- Clone: Shallow-clone target repos from your config
- Scan: Run semgrep (SAST), gitleaks (secrets), checkov (IaC), osv-scanner (dependencies)
- Report: Generate SARIF 2.1.0 → upload to Security tab + Markdown summary
See docs/setup.md for the full setup guide (private repos, local usage, configuration reference).
cp config.example.yaml config.yamlEdit config.yaml — add the repos you want to scan:
repositories:
- url: https://github.com/your-org/your-repo.git
branch: main
schedule: daily
scanners:
semgrep: true
gitleaks: true
checkov: true
dependency: trueGo to your repo → Actions → enable workflows. The scan runs daily at 6am UTC, or trigger manually from the Actions tab.
Findings appear in your repo's Security tab → Code scanning. A Markdown summary is uploaded as a workflow artifact.
| Scanner | Tool | What it finds |
|---|---|---|
| semgrep | semgrep | SAST — SQL injection, XSS, unsafe functions, hardcoded secrets in code |
| gitleaks | gitleaks | Secrets — API keys, tokens, credentials, private keys |
| checkov | checkov | IaC — Terraform, CloudFormation, Kubernetes, Dockerfile misconfigs |
| dependency | osv-scanner | CVEs in npm, PyPI, Cargo, Go, Maven, Ruby dependencies |
See config.example.yaml for the full annotated reference.
Key options:
repositories[].url— git clone URL (HTTPS or SSH)repositories[].schedule—daily,weekly,monthly, ormanualrepositories[].scanners— enable/disable per-scanner per-reporepositories[].exclude_paths— glob patterns to skipscanners.<name>.*— global scanner defaults
# Run a scan
vuln-scanner run --config config.yaml
# Dry run (list repos, skip scanning)
vuln-scanner run --config config.yaml --dry-run
# Validate config
vuln-scanner validate --config config.yaml
# List available scanners
vuln-scanner list-scanners- Python >= 3.11
- Git
- Scanner CLI tools (installed automatically by the workflow):
- semgrep, gitleaks, checkov, osv-scanner
MIT