blackoutsecure/Blackout Secure Code Scanning Kit

Run secret/code scanners and posture audits, then upload a unified SARIF log to GitHub Advanced Security.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 8, 2026
License
Apache 2.0

Pinned Snippet

workflow.ymlSHA-pinned
uses: blackoutsecure/bos-code-scanning-kit@f0ec5bef0a90918e75b8ab59092c0234558737f4 # v1.0.5

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

namedescriptionrequireddefault
ownerGitHub owner of the repo being scanned. Defaults to the workflow context.no""
repoGitHub repo name being scanned. Defaults to the workflow context.no""
configPath to `.bos-scan.yml`. Defaults to auto-discovery at the repo root.no""
github_tokenToken used by the posture audit (PS001 code scanning, PS002 secret scanning, PS003 Dependabot alerts, PS020-PS025 branch protection). Leave empty to fall back to the workflow's built-in GITHUB_TOKEN, which is enough for PS001 only. PS002/PS003/PS020-PS025 require a PAT with admin reach — by org convention stored as a secret named `SCANNING_PAT`. See the kit README § 'SCANNING_PAT — advanced posture credentials' for the classic / fine-grained tick checklist and the recommended caller pattern.no""
enable_posture`true` to run the posture audit step.notrue
enable_scanners`true` to run the bundled scanners (actionlint / gitleaks / shellcheck).notrue
enable_upload`true` to upload the merged SARIF to GitHub Advanced Security.notrue
fail_on`fail` (default) — exit non-zero if posture has any FAIL findings or any scanner reports a result. `never` — collect findings but always exit 0 (useful for first-time rollouts).nofail
http_timeoutPer-request HTTP timeout (seconds) for the posture audit's GitHub REST calls. Default `20`. Each probe is independent, so the practical upper bound on a posture run is roughly `http_timeout` * number-of-probes (~10 on a baseline scan). Bump on self-hosted runners with slow egress, or to ride out brief GitHub API latency spikes that otherwise surface as `PS*** error: HTTP 502` rows. Bare integer string; no unit.no20
sarif_outputPath for the merged SARIF artefact.nobos-scan.sarif
namedescription
sarif_pathPath to the merged SARIF file produced by the run.
posture_failuresNumber of FAIL findings from the posture audit.
outcomeSeverity-tier verdict for the run: `success` (no findings at any level), `warn` (only warning/note-level findings — nothing the enforcement policy would block on), or `failure` (at least one error-level finding from the posture audit or any scanner). Reflects severity only — it does NOT change based on `fail_on`, so callers can gate pipelines on the verdict independently of whether the kit step itself exited non-zero.