Skip to content

chore(security): gitleaks allowlist for triaged false positives - #467

Merged
hyperpolymath merged 2 commits into
mainfrom
chore/gitleaks-allowlist
Aug 7, 2026
Merged

chore(security): gitleaks allowlist for triaged false positives#467
hyperpolymath merged 2 commits into
mainfrom
chore/gitleaks-allowlist

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

All of this repository's gitleaks findings were triaged on 2026-08-06 by reading each matched line with the value redacted. Every one is a false positive — no live credential was found.

This adds locally justified path exemptions. Each names what the value actually is rather than saying a file is noisy.

Why local and not in the estate baseline: every entry is a blind spot. Held here it blinds this repository only, and the justification sits beside the code it describes. Promoted to the baseline it would blind all 400+ repositories.

Depends on hyperpolymath/standards#584, which wires the estate baseline into the scan and stages it at the workspace root so this file's [extend] path resolves.

Verified before commit: with this config in place, a planted AWS canary outside the exempted paths is still DETECTED and the gate still exits non-zero.

🤖 Generated with Claude Code

The gitleaks gate has been blocking this repository's pull requests. Every
finding was triaged on 2026-08-06 by reading the matched line with the value
redacted, and every one is a false positive. No live credential was found.

Each entry names WHAT THE VALUE ACTUALLY IS rather than saying the file is
noisy — an algorithm name, a bibliographic key, a published protocol
constant, a fixture belonging to a secret DETECTOR, and so on.

The file EXTENDS the estate baseline rather than replacing it:
hyperpolymath/standards secret-scanner-reusable.yml stages that baseline at
the workspace root as .gitleaks-estate.toml, and gitleaks resolves
'[extend] path' against the process CWD. Requires standards#584.

Kept local rather than promoted to the estate baseline because every entry is
a blind spot: held here it blinds this repository only, with its
justification beside the code it describes.

Verified before commit: with this config in place a planted AWS canary
outside the exempted paths is still DETECTED and the gate still exits
non-zero on it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
Comment thread .gitleaks.toml
Comment on lines +33 to +39
paths = [
# Unit tests for cipherbot's hardcoded-secret DETECTOR. The fixtures must
# look like secrets or the tests cannot assert that the detector rejects
# them.
'''(^|/)bots/cipherbot/src/analyzers/config\.rs$''',

]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Edge Case: Allowlist may miss secret-like test fixture weak_config.toml

The allowlist exempts only bots/cipherbot/src/analyzers/config.rs, but a sibling test fixture bots/cipherbot/tests/fixtures/weak_config.toml also contains a credential-shaped literal (password = "SuperSecretPassword123!") that exists purely to exercise the detector. If the estate baseline's rules flag this value, the gate will fail on this repo even though it is a false positive of the same class the PR is triaging. Confirm whether gitleaks flags this fixture and, if so, add an anchored path entry for it (e.g. '''(^|/)bots/cipherbot/tests/fixtures/weak_config.toml$''').

Was this helpful? React with 👍 / 👎

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ This PR is blocked due to unresolved code review findings.

Configure merge blocking · Maintainers can dismiss this review.

@gitar-bot

gitar-bot Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime.
Learn more

Code Review 👍 Approved with suggestions 0 resolved / 1 findings

Adds a Gitleaks allowlist for triaged false positives to clear scanner gates. The allowlist may miss the secret-like test fixture weak_config.toml since it only exempts bots/cipherbot/src/analyzers/config.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

💡 Edge Case: Allowlist may miss secret-like test fixture weak_config.toml

📄 .gitleaks.toml:33-39

The allowlist exempts only bots/cipherbot/src/analyzers/config.rs, but a sibling test fixture bots/cipherbot/tests/fixtures/weak_config.toml also contains a credential-shaped literal (password = "SuperSecretPassword123!") that exists purely to exercise the detector. If the estate baseline's rules flag this value, the gate will fail on this repo even though it is a false positive of the same class the PR is triaging. Confirm whether gitleaks flags this fixture and, if so, add an anchored path entry for it (e.g. '''(^|/)bots/cipherbot/tests/fixtures/weak_config.toml$''').

🤖 Prompt for agents
Code Review: Adds a Gitleaks allowlist for triaged false positives to clear scanner gates. The allowlist may miss the secret-like test fixture weak_config.toml since it only exempts bots/cipherbot/src/analyzers/config.

1. 💡 Edge Case: Allowlist may miss secret-like test fixture weak_config.toml
   Files: .gitleaks.toml:33-39

   The allowlist exempts only bots/cipherbot/src/analyzers/config.rs, but a sibling test fixture bots/cipherbot/tests/fixtures/weak_config.toml also contains a credential-shaped literal (password = "SuperSecretPassword123!") that exists purely to exercise the detector. If the estate baseline's rules flag this value, the gate will fail on this repo even though it is a false positive of the same class the PR is triaging. Confirm whether gitleaks flags this fixture and, if so, add an anchored path entry for it (e.g. '''(^|/)bots/cipherbot/tests/fixtures/weak_config\.toml$''').

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Important

Your trial ends in 4 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot
gitar-bot Bot enabled auto-merge (squash) August 6, 2026 11:18

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@gitar-bot gitar-bot Bot added the gitar-approved Added by Gitar label Aug 6, 2026
@hyperpolymath
hyperpolymath disabled auto-merge August 7, 2026 15:47
@hyperpolymath
hyperpolymath merged commit 499d389 into main Aug 7, 2026
24 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the chore/gitleaks-allowlist branch August 7, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant