diffsec/quokka security review

Multi-agent security code review on pull requests, driven by quokka and OpenCode

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit May 14, 2026
License
None

Pinned Snippet

workflow.ymlSHA-pinned
uses: diffsec/quokka-review-action@31c996794ce8a76c1869ee45d1d72c8f6af1b0ac # v0.1.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
anthropic-api-keyShortcut for Anthropic users — sets ANTHROPIC_API_KEY in OpenCode's environment. For non-Anthropic providers (z.ai, OpenAI, Google, etc.) use `opencode-env` instead.no""
opencode-envMulti-line KEY=VALUE pairs exported to OpenCode (e.g. "ZAI_API_KEY=..." for z.ai). Use for any provider besides Anthropic. Values are written to a 0600-mode tmpfile.no""
opencode-configFull opencode.json content — provider definitions and model aliases. Written to the repo root before invoking OpenCode. Use this to plug in custom providers like the Z.AI Coding Plan endpoint without writing opencode.json into your codebase.no""
modelModel id in provider/model form (e.g. "anthropic/claude-sonnet-4-5", "zai/glm-5.1"). Empty = OpenCode default.no""
github-tokenToken used to post PR comments and upload SARIF (typically secrets.GITHUB_TOKEN)yes
base-refGit ref to diff against. Defaults to the PR target branch (origin/$GITHUB_BASE_REF).no""
quokka-repoGitHub repo (owner/name) to clone quokka from. Override for testing fork branches; defaults to the canonical repo.nodiffsec/quokka
quokka-refGit ref (branch or tag) within quokka-repo to build from. SHAs not supported by git clone --branch.nomain
opencode-versionopencode-ai npm package versionnolatest
opengrep-versionopengrep release tag to install (e.g. v1.21.0). Use "latest" for the newest release.nolatest
opengrep-rules-refgit ref of github.com/opengrep/opengrep-rules to clonenomain
opengrep-configopengrep --config arg: either a subdirectory of opengrep-rules (e.g. python, security) or a registry shorthand (e.g. p/security-audit)nosecurity
profileOrchestrator profile: "deep" (recon + analysis + validation + per-finding review, ~20-30min) or "fast" (SAST triage + parallel analysis only, ~3-5min). Default fast for CI advisory.nofast
runner-mode'orchestrator' (default) uses an LLM-orchestrator agent that decides which subagents to dispatch. Works well with strong models (Claude Sonnet/Opus, DeepSeek V4 Pro). 'dispatcher' uses quokka's deterministic dispatcher to spawn subagents in parallel — predictable, model-agnostic, and substantially cheaper for smaller models that struggle with multi-step tool orchestration. noorchestrator
allow-agent-rulesPermit the orchestrator to author new opengrep rules via `quokka rule add` (v1.1 feature). Default false. New rules apply to NEXT PR, not this one.nofalse
allow-agent-exceptionsPermit the orchestrator to author finding suppressions via `quokka exception add` (v1.1 feature). Default false. Suppressions are time-bounded (expires required).nofalse
top-nMaximum findings to inline in the PR comment (full list goes to SARIF)no10
severity-thresholdOnly inline findings at or above this severity in the PR comment (critical, high, medium, low, info)nohigh
block-onFail the check if any finding at or above this severity exists. Empty disables blocking.no""
comment-prWhether to post the rendered comment to the PRnotrue
upload-sarifWhether to upload SARIF to GitHub code-scanningnotrue
namedescription
findings-countTotal findings produced by the review
sarif-pathPath to the generated SARIF file
comment-pathPath to the generated PR comment markdown