martinez1991/Quorum consensus security scan

Consensus scanning across 12 OSS scanners (image|repo|k8s); correlates findings and gates the build by exit code.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
targetPath or image reference to scan.no.
typeTarget type: image | repo | k8s (inferred from the target if empty).no""
scannersComma-separated scanners to run (default: all that support the target).no""
formatOutput format: sarif | json | xml.nosarif
outputReport file, relative to the working directory (empty = stdout).noquorum.sarif
fail-onExit non-zero if any finding is >= this severity: critical|high|medium|low.no""
min-severityDrop findings below this severity from the report and gating.no""
baselineBaseline file of fingerprints/correlationKeys to suppress.no""
crosswalkCrosswalk mapping directory (defaults to the one bundled in the image).no/opt/quorum/crosswalk
timeoutPer-scanner timeout (e.g. 5m).no""
offlineDisable OSV alias lookups (scanner-local aliases + cache only).nofalse
quietSuppress progress logs on stderr.nofalse
imageQuorum image to run. Pin by @sha256:... in production.noghcr.io/martinez1991/quorum-sec-scan:full
verifyCosign-verify the image signature (keyless OIDC) before running it.notrue
working-directoryDirectory mounted into the scanner as /work.no${{ github.workspace }}
docker-socketMount the host Docker socket (/var/run/docker.sock) so scanners can read images from the runner's Docker daemon (e.g. a just-built image). It is auto-mounted for `type: image` — set "true" to force it for other types, or "off" to opt out even for image scans.no""
trivy-argsExtra CLI args appended to trivy (QUORUM_TRIVY_ARGS).no""
grype-argsExtra CLI args appended to grype (QUORUM_GRYPE_ARGS).no""
checkov-argsExtra CLI args appended to checkov (QUORUM_CHECKOV_ARGS) — e.g. "--bc-api-key <key> --repo-id org/repo --framework terraform,secrets" to unlock Prisma Cloud/Bridgecrew policies through the bundled OSS Checkov.no""
kics-argsExtra CLI args appended to kics (QUORUM_KICS_ARGS).no""
dockle-argsExtra CLI args appended to dockle (QUORUM_DOCKLE_ARGS).no""
kubescape-argsExtra CLI args appended to kubescape (QUORUM_KUBESCAPE_ARGS).no""
adviceAttach the advisory layer: deterministic remediation templates + OWASP references (Phase 0) and RAG retrieval from the bundled digest-pinned OWASP corpus (Phase 2, lexical — no model). Set "true" to enable.nofalse
advice-providerAI recommendation provider (Phase 1): none | local. "local" queries an on-host OpenAI-compatible endpoint (e.g. Ollama) for a labeled, advisory recommendation per finding. Requires `advice: true` and a reachable model.nonone
advice-endpointOpenAI-compatible base URL for advice-provider=local. Defaults to host.docker.internal so the scanner container can reach a model running on the runner host (the action adds the host-gateway mapping automatically).nohttp://host.docker.internal:11434/v1
advice-modelModel id for advice-provider=local (e.g. qwen2.5-coder:7b).no""
advice-embed-modelEmbedding model for SEMANTIC OWASP retrieval (only when the corpus ships vectors).no""
advice-maxMax findings sent to the AI provider per run (0 = no cap).no""
advice-cachePath (relative to working-directory) for the AI advice cache, so repeated runs reuse a finding's recommendation instead of re-querying the model. Put it under the workspace (e.g. .quorum/advice.json) and persist it with actions/cache for reproducibility across runs.no""
fixAI suggested-fix mode (Phase 1): off | suggest. "suggest" emits a patch that passed a verify-the-fix re-scan; it is NEVER auto-applied. Requires advice-provider=local (remote refuses --fix — it would upload source). Scope: IaC/K8s targets.no""
advice-allow-egressConsent to send findings off-host — REQUIRED for advice-provider=remote, which posts finding titles/paths/controls to an external API. Set "true".nofalse
advice-api-keyAPI key for advice-provider=remote (pass a repository/organization secret). Forwarded to the scanner as QUORUM_ADVICE_API_KEY and never logged. Blocked under offline.no""
namedescription
output-fileAbsolute path to the written report (empty when output is stdout).
exit-codeQuorum exit code: 0 ok, 1 gate tripped (--fail-on), 2 error.