aboutsummaryrefslogtreecommitdiff
path: root/working/triage-telegram-down-launch/proposed.diff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-24 12:28:18 -0500
committerCraig Jennings <c@cjennings.net>2026-07-24 12:28:18 -0500
commitf0c1bc40708615d5b423922c08c1f27e6cf96259 (patch)
tree5fc8ebe7fde6381f4cd91b5de15fe4a2521889c8 /working/triage-telegram-down-launch/proposed.diff
parent781fa0786e2096797e630dcb81ffbc62ed98460b (diff)
downloadrulesets-f0c1bc40708615d5b423922c08c1f27e6cf96259.tar.gz
rulesets-f0c1bc40708615d5b423922c08c1f27e6cf96259.zip
fix(hooks): the secret scan no longer passes when git fails
Every bundle built its scan input as `git diff --cached ... | grep ... || true`. The `|| true` has to stay, since grep exits 1 when it matches nothing and that is the ordinary case. But with no pipefail it also swallowed a failure of git itself, so an empty result made the scan search nothing, find nothing, and report clean with a real credential staged. A gate that passes without having looked. .emacs.d found it in elisp. It was in all five: bash, elisp, go, python and typescript, eleven sites once each bundle's staged-file list is counted. Two of those bundles are ones I wrote yesterday by copying bash, so I propagated it while closing an unrelated gap in the same file. Each site now reads the diff on its own and aborts if git fails, leaving the greps their `|| true`. Verified per bundle on three axes: refuses when the diff cannot be read, still blocks a real staged secret, still passes a clean commit. The cross-bundle test suite had its own version of the same disease. Its VARIANTS list read "elisp bash go" while python and typescript also shipped hooks, so every "in every variant" assertion had quietly skipped two bundles since the day they were added. VARIANTS is now discovered from the tree. Two fail-closed assertions join it, and .emacs.d's elisp suite is adopted here beside the canonical hook, because a test living in the consuming project cannot fail when the canonical regresses. Also removes the validate-el auto-test cap, Craig's call. Above 20 matching test files the runner skipped everything and exited 0 with no output. The premise was speed and it did not hold: a whole family runs in about a second. The cap was also hiding a real cross-test pollution bug that only surfaces when a family runs in one process.
Diffstat (limited to 'working/triage-telegram-down-launch/proposed.diff')
0 files changed, 0 insertions, 0 deletions