Skip to content

Follow the two password-literal allowlists to where 1.9.0's pins moved them - #174

Merged
jgfoster merged 1 commit into
mainfrom
james/gitleaks-moved-paths
Oct 21, 2026
Merged

jgfoster merged 1 commit into
mainfrom
james/gitleaks-moved-paths

Conversation

@jgfoster

Copy link
Copy Markdown
Member

The 1.9.0 Release run (39544258491) stopped at Secret scan. Each package had 9 hits, all from gemstone-password-literal. Nothing was published: the scan runs before the GitHub Release and both registries.

Cause

Every hit is text .gitleaks.toml already allowlists, found under a path the 1.9.0 pin bumps moved:

Allowlisted Ships in 1.9.0 at Moved by Hits per package
grail/src/python/stdlib/ grail/src/python/bundled/django/contrib/auth/ Grail #1716 (bundled packages left stdlib/) 7: password1_field_name="password1", PASSWORD_FIELD = "password"
mcp/src/auth/ mcp/src/Mcp-Auth-Tests/ mcp_server 0.9.0, #57 (Rowan, Tonel layout) 2: the test user's 'swordfishXYZ'

Change

  • Grail: the allowlist now covers both stdlib/ and bundled/, since both carry third-party source verbatim.
  • MCP: the allowlist moves to Mcp-Auth-Tests/. I checked mcp_server's install.sh: --no-auth still leaves the Auth component, and so these tests, out of the database.

Both allowlists stay scoped to this one rule, so a real key in those directories still fails the other rules. The comments record why each path moved.

Checked

I ran gitleaks 8.30.1, the version Release pins (checksum verified), over the three 1.9.0 packages CI built for 58f85e3, the same way the Release job does. main's config gives 9 findings per package, matching the Release run. This config gives 0. Allowlists only remove findings, so this hides those 9 and nothing else.

After merging

Release scans with the .gitleaks.toml from the commit being released, so 1.9.0 has to be released from this PR's merge commit. Wait for that commit's CI to go green, then run Release again.

🤖 Generated with Claude Code

…d them

The 1.9.0 release stopped at the secret scan: 9 hits per package, all
from gemstone-password-literal, all text the allowlists already cover
under paths the pin bumps moved. Grail #1716 moved the third-party
packages it bundles, Django among them, from src/python/stdlib/ to
src/python/bundled/ (7 hits: Django's password1_field_name="password1"
and PASSWORD_FIELD = "password"). mcp_server 0.9.0 (#57) became a Rowan
project, so its auth tests are now the Tonel package src/Mcp-Auth-Tests/
(2 hits: the throwaway user's 'swordfishXYZ'), which --no-auth still
leaves out of the database with the rest of the Auth component.

Run with gitleaks 8.30.1 over the 1.9.0 packages CI built for 58f85e3,
main's config finds those 9 in each package and this one finds none.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jgfoster
jgfoster added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 7b99dc4 Oct 21, 2026
5 checks passed
@jgfoster
jgfoster deleted the james/gitleaks-moved-paths branch October 21, 2026 04:59
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