Skip to content

CI: real-tool smoke for zizmor, gosec, staticcheck, kube-linter, flawfinder and detect-secrets - #2363

Merged
remigiusz-antczak merged 3 commits into
mainfrom
feat/hub-real-smoke-3
Nov 13, 2026
Merged

remigiusz-antczak merged 3 commits into
mainfrom
feat/hub-real-smoke-3

Conversation

@remigiusz-antczak

Copy link
Copy Markdown
Collaborator

Extends the real-hub CI job to six more scanners routed through review_checks.sh: zizmor 1.32.0, gosec 2.30.0, staticcheck 2026.2.2, kube-linter 0.8.3, flawfinder 2.0.20 and detect-secrets 1.5.0. Each tool installs at an exact version (binaries checked against upstream sha256), runs on one fictional canary file, and the job fails unless the tool ran, reported its expected rule on that file, and no not-run line appeared.

All six canaries passed locally, though some ran nearby versions or macOS builds; this PR's CI run is the first run of the pinned Linux binaries.

Tests: canaries run in CI; actionlint, bash -n and the privacy grep pass locally.

🤖 Generated with Claude Code

remigiusz-antczak and others added 3 commits November 13, 2026 17:54
…finder, detect-secrets

Extends the real-hub CI job to six more offline scanners routed through
review_checks.sh: zizmor 1.32.0, gosec 2.30.0, staticcheck 2026.2.2,
kube-linter 0.8.3, flawfinder 2.0.20 and detect-secrets 1.5.0, each pinned
exactly (binaries sha256-checked) and run on one fictional canary file. Each
must be reported as ran with its expected rule id on its canary, else the
job fails.

Local real runs: all six passed (zizmor 1.31.1 locally; staticcheck and
kube-linter darwin builds of the pinned versions).

Tests: 10/10 local real-tool canaries (16/16 in CI expected); bash -n and actionlint clean

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Python tools (ansible-lint, ansible-core, cfn-lint, bandit, ruff, zizmor,
flawfinder, detect-secrets) now install from scripts/real-hub-requirements.txt
with full transitive pins and sha256 hashes (Linux x86_64, CPython 3.13) via
pip install --require-hashes --only-binary=:all:. solhint installs with npm ci
from a committed package-lock. Python and Go are pinned by SHA-pinned
setup-python (3.13) and setup-go (1.26.11) so a runner toolchain bump cannot
break the canaries. The kube-linter checksum is documented as the GitHub
release-asset digest. rubocop stays version-pinned only: the available Bundler
cannot write gem checksums.

Tests: actionlint clean; bash -n clean; size, size-ratchet, binaries, enumeration gates ok; real install not run locally (CI)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The literal credentialed URL matched the committed privacy banlist pattern.
Assemble it from scheme and password parts so the source never contains it;
the written app/notes.txt is byte-identical, so detect-secrets still flags it.

Tests: privacy gate clean, bash -n ok (detect-secrets not installable here)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@remigiusz-antczak
remigiusz-antczak merged commit 13ed82d into main Nov 13, 2026
13 checks passed
@remigiusz-antczak
remigiusz-antczak deleted the feat/hub-real-smoke-3 branch November 13, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant