timescale/RSigma Detection-as-Code

Lint, validate, fields-drift, backtest, and ATT&CK coverage gate for Sigma rules, powered by rsigma.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
versionrsigma release to install (e.g. v0.17.0). `latest` resolves the newest release once, then pins it for the cache key. Pinning a tag is recommended.nolatest
rulesRule file or directory, passed to every step.norules/
pipelinesPipeline names or paths (one per line), forwarded as repeated `-p` to validate, backtest, and the fields diff.no""
working-directoryRepo-relative root for all paths.no.
lintRun the lint step.notrue
validateRun the validate step.notrue
fields-diffRun the merge-base fields-drift diff (pull requests only).notrue
lint-fail-levelForwarded to `rule lint --fail-level` (error/warning/info). The CLI default is `error`; this action defaults to the stricter `warning`.nowarning
sourcesDynamic-source files or directories (one per line) for `rule validate --resolve-sources --source ...`.no""
corpusBacktest corpus file or directory (one per line). The backtest step runs only when this is set.no""
expectationsExpectations YAML, forwarded to `rule backtest --expectations`.no""
unexpectedForwarded to `rule backtest --unexpected` (fail/warn/ignore).nowarn
coverageRun the ATT&CK coverage step.nofalse
coverage-targetsTarget technique list, forwarded to `rule coverage --targets`.no""
coverage-baselineBaseline Navigator layer for `rule coverage --baseline`. Use `true` for the upstream SigmaHQ default, or a path/URL.no""
coverage-atomicsAtomic Red Team index for `rule coverage --atomics`. Use `true` for the upstream default, or a path/URL/directory.no""
fail-on-gapsForwarded to `rule coverage --fail-on-gaps`; fails the gate when a requested cross-reference reports uncovered techniques.nofalse
annotationsEmit workflow-command annotations on the PR diff.notrue
pr-commentMaintain the sticky summary comment on pull requests.notrue
github-tokenToken used to download the rsigma release, verify its attestation, and upsert the PR comment. Needs `pull-requests: write` for the comment.no${{ github.token }}
namedescription
rsigma-versionThe resolved rsigma version that ran.
lint-errorsLint error count from the JSON envelope summary.
lint-warningsLint warning count from the JSON envelope summary.
backtest-passed`true` when the backtest ran and all expectations passed, `false` otherwise.
junit-pathPath to the backtest JUnit XML report, if produced.
report-pathPath to the backtest JSON report, if produced.
navigator-pathPath to the coverage ATT&CK Navigator layer, if produced.
fields-addedNumber of rule fields added relative to the merge-base.
fields-removedNumber of rule fields removed relative to the merge-base.