fix(ci): allowlist the invented observer fixture session id for gitleaks - #256
Merged
Merged
Conversation
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.
The
Secrets scanjob is failing repo-wide, not on any one PR's diff. The job checks out withfetch-depth: 0and runsgitleaks detect --source ., so it scans every reachable commit across all branches — not just the PR's changes.Root cause: two
generic-api-keyfindings, both the same invented passive-observer fixture session id (0f1e2d3c-4b5a-6978-8a9b-0c1d2e3f4a5b) asserted verbatim incrates/vettd-cli/src/observe/claude_code/discover_tests.rsandcrates/vettd-cli/src/observe/extract_tests.rs. Those files exist only on the unmerged branchclaude/vettd-cli-250-product-ready-tb6w2w; neither is an ancestor ofmain. The value is not a secret — it is the stem of a committed fixture transcript, and a real harness session id is HMAC'd intorun_id. gitleaks readsassert_eq!(x, "<uuid>")as an assignment and the v4-shaped hex scores entropy 4.02. The allowlist that fixes this already exists on that branch but never landed onmain, so every PR (and anymainrun) fails the same way.Fix: one
[[allowlists]]block in.gitleaks.toml, pinned to that single literal and scoped to the observe test paths, so any other high-entropy string in those files still fails. CI-only; no code or behavior change.Verification: ran the version CI pins (gitleaks 8.30.1, matching the workflow's
GL_VERSION) over the full history —313 commits scanned, no leaks found, exit 0.Note this unblocks
#254(whoseSecrets scanis failing for this unrelated reason).