Skip to content

Fix gitleaks generic-api-key false positive (Plan 00087) - #37

Merged
LTSCommerce merged 3 commits into
F44from
plan-00087-gitleaks-generic-key-false-positive
Aug 24, 2026
Merged

Fix gitleaks generic-api-key false positive (Plan 00087)#37
LTSCommerce merged 3 commits into
F44from
plan-00087-gitleaks-generic-key-false-positive

Conversation

@LTSCommerce

Copy link
Copy Markdown
Contributor

Summary

F44's gitleaks secret scan CI check has been red for a while, unrelated to any
in-flight PR's own diff — confirmed the same failure exists on F44's own tip. One
finding: generic-api-key on Medium/byteiota in
CLAUDE/Plan/Completed/00070-lightweight-agent-browser-engine/research/scan-alt-engines.md:222
— a citation to two blog names joined by /, not a credential.

Root cause confirmed with the exact CI gitleaks version: CI pins 8.30.1
(.github/workflows/qa.yml); downloading and running that exact binary reproduces the
finding immediately. 8.30.1's default ruleset added coverage that catches this
slash-joined, mixed-case shape — an older 8.21.2 binary does NOT flag it, confirming
this is upstream ruleset drift, not a repo regression.

Fix

Rephrased Medium/byteiotaMedium (Byteiota) — removes the token shape gitleaks'
generic-api-key rule keys on. Deliberately NOT adding another .gitleaks.toml
allowlist entry: the repo's own anti-pattern doctrine flags "an allowlist that grows"
as a smell, and a prose citation has no reason to be a single slash-joined token in the
first place.

Test plan

  • Downloaded gitleaks 8.30.1 (CI's exact pinned version) and reproduced the finding
    against the file before the fix
  • Re-ran against the file after the fix — clean
  • git archive HEAD | tar -x to export the exact tracked tree at this commit
    (matching a real actions/checkout, not a dirty working tree with gitignored
    local state), then gitleaks dir . --redact --no-banner --verbose (8.30.1) —
    0 leaks across the whole tree

🤖 Generated with Claude Code

LTSCommerce and others added 3 commits August 24, 2026 16:19
…ngines.md

CI's gitleaks secret scan pins 8.30.1, whose default ruleset flags
Medium/byteiota (a slash-joined citation to two blog names) as
generic-api-key. Reproduced with the exact CI binary version, confirmed
8.21.2 does not catch it (ruleset drift, not a repo regression). Rephrased
rather than growing .gitleaks.toml's allowlist.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Independent review returned PASS WITH NITS: the fix, the rephrase-over-
allowlist call, and CI-green were all confirmed correct, but the plan's
README.md index row was missing. Added under Active Plans.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@LTSCommerce
LTSCommerce merged commit b15fc4d into F44 Aug 24, 2026
6 checks passed
@LTSCommerce
LTSCommerce deleted the plan-00087-gitleaks-generic-key-false-positive branch August 24, 2026 16:49
LTSCommerce added a commit that referenced this pull request Aug 24, 2026
…ix so both PRs share a clean base

# Conflicts:
#	CLAUDE/Plan/README.md
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