Repository navigation
Union the gitleaks default rules into the privacy gate; blind held-out-3 - #1995
Closed
remigiusz-antczak wants to merge 1 commit into
Closed
remigiusz-antczak wants to merge 1 commit into
remigiusz-antczak wants to merge 1 commit into
Conversation
…lind on held-out-3 The privacy gate now flags a file when either .banlist.txt or the gitleaks default rules match. The gitleaks port moved out of the rival bench into scripts/secret_scan.py, which the gate and score_rivals.py both import; the vendored v8.30.1 config (MIT, pinned in SOURCES.md) moved next to it as data. The exact-path frozen-corpus skip is kept and extended to held-out-3; 15 frozen paths holding only placeholders or synthetic values are allowed by exact path in scripts/secret-scan-allow.txt, so the repo stays at 0 hits. The gitleaks half fans out over 8 processes; wall time on this repo was 426s against 659s without it in one noisy back-to-back run. Held-out-3 (rules frozen, scored once, two rows given extra @@ markers before scoring and disclosed in the ledger): union 54/60 leaks FP 16/60, banlist only 41/60 FP 12/60, gitleaks 47/60 FP 8/60. Tests: 139/139 ci-tests.d (run-ledger.sh excluded, sandbox lsof timeout), test-ci-gates.sh (privacy and awk-v checks pass; 3 sandbox-only fails: peer pains, reap_own pgrep, tracker hygiene; 7 dcr-gates opt-in need port bind), privacy, size-ratchet, bench_check pass Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014QNFFPWVcPUbeuvwM5fk2Z
This was referenced Oct 25, 2026
Collaborator
Author
|
Superseded by #1996 (same commit rebased onto current main; branch protection requires up-to-date). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This supersedes #1992, rebased onto main after #1993. It also fixes the two
test-ci-gates.shchecks that failed CI on #1992: the frozen held-out-1024secret-leaks.txtskip, and the missingawk-v-okannotation.This adds the gitleaks default rules to the privacy gate alongside
.banlist.txt, so a file fails when either one matches. On held-out-3 the union catches more leaks than either layer alone, at the cost of about twice gitleaks' false-positive rate..banlist.txtonly (main)@@markers before scoring, and the ledger discloses both. Treat the table as close to out-of-sample, not strictly blind.scripts/secret_scan.py; the gate andscore_rivals.pyboth import it.scripts/secret-scan-allow.txt, so the repo stays at 0 hits. A test proves that appending a key to a pinned file fails the gate.The independent review raised 4 🔴 against the gitleaks layer. I probed each against the whole gate on this branch and on main:
gitleaks:allowcomment and an.svgorgo.sumpath both still fail the gate, because the banlist half matches them.None of these is a regression. The NUL-byte skip and the unguarded allow file (🟡) are the next fixes for the secret gate.
Local gates:
scripts/ci-tests.d: 139/139.run-ledger.shwas excluded because it times out onlsofin the sandbox.bench_check: clean.git diff --check: clean.🤖 Generated with Claude Code
https://claude.ai/code/session_014QNFFPWVcPUbeuvwM5fk2Z