Skip to content

fix(security): resolve gitleaks tag-history secrets (closes #63) - #69

Merged
man4ish merged 1 commit into
mainfrom
fix/gitleaks-issue-63-tag-history-secrets
Aug 30, 2026
Merged

fix(security): resolve gitleaks tag-history secrets (closes #63)#69
man4ish merged 1 commit into
mainfrom
fix/gitleaks-issue-63-tag-history-secrets

Conversation

@man4ish

@man4ish man4ish commented Aug 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Closes #63.

CI's actions/checkout@v4 (fetch-depth: 0) force-updates every tag, so
gitleaks git (which walks all refs) permanently rescans the abandoned
pre-history-rewrite v0.2.0/v0.2.0-beta tag tips instead of main.
main itself has 0 leaks in 389 commits — this was never a main
compromise.

Each of the 7 tag-only findings was individually investigated and
verified live/dead by the repo owner (no blanket suppression):

Finding Status Method
GitHub fine-grained PAT (.env) Rotated/revoked Absent from current token list
RAGBIO_API_KEY (.env) Rotated Direct value comparison
JWT secret x2 (docker-compose*.yml) Dead Decoded exp claim, already past
Grafana/Prometheus basic-auth (DEPLOYMENT.md x3) Different/safe Direct value comparison

.gitleaksignore now has a per-entry justification for each. Verified
scripts/secret-scan.sh (CI's actual step) passes clean: 450 commits scanned, no leaks found, after re-fetching with CI's exact refspec to
rule out local-tag drift as a confound.

See SECRET_SCAN_CI_INVESTIGATION.md (root-cause diagnosis) and
SECRET_SCAN_RESOLUTION.md (credential verification + fix trail) for the
full record.

Test plan

  • bash scripts/secret-scan.sh exits 0, no leaks found
  • CI green on this branch

🤖 Generated with Claude Code

CI's actions/checkout@v4 (fetch-depth: 0) force-updates tags, so
gitleaks git mode permanently rescans the abandoned pre-history-rewrite
v0.2.0/v0.2.0-beta tag tips instead of main (0 leaks in 389 commits).

Each of the 7 tag-only findings individually verified dead/rotated
(GitHub PAT, RAGBIO_API_KEY, 2x JWT secret, Grafana/Prometheus creds)
and added to .gitleaksignore with per-entry justification -- no blanket
suppression. scripts/secret-scan.sh now passes clean (450 commits
scanned, no leaks found).

Adds SECRET_SCAN_CI_INVESTIGATION.md (root-cause diagnosis) and
SECRET_SCAN_RESOLUTION.md (credential verification + fix trail) as the
permanent record.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UtrDnVmNutDYsKAXnZrvWy
@man4ish
man4ish merged commit 2336829 into main Aug 30, 2026
6 of 7 checks passed
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.

gitleaks: 7 secrets flagged in git history (Lint & Validate failing) — needs live-credential assessment, not a count-based severity call

1 participant