Skip to content

security: re-pin secret scanner onto the real gitleaks gate#73

Merged
hyperpolymath merged 2 commits into
mainfrom
security/real-secret-gate
Jul 21, 2026
Merged

security: re-pin secret scanner onto the real gitleaks gate#73
hyperpolymath merged 2 commits into
mainfrom
security/real-secret-gate

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

This repo's Secret Scanner has been reporting success while being incapable of failing.

The caller pinned secret-scanner-reusable at @d135b05 (2026-06-24) — 64 commits behind standards#500. At that pin the step is literally:

- name: Gitleaks Secret Scan
  continue-on-error: true          # <- cannot fail
  uses: gitleaks/gitleaks-action@e0c47f4f...

Re-pinned to @c65436ee (contains #500 — compare reports ahead 5 / behind 0):

- name: Install gitleaks (pinned + checksum-verified)   # sha256-verified binary
- name: Gitleaks secret scan (gating)
  run: ... gitleaks detect ... --exit-code 1            # gates for real

Also narrowed the caller's grant to contents: read — the new reusable invokes a binary rather than gitleaks-action, so it no longer requests pull-requests: write / actions: read. (That mismatch is what startup_failured standards' own scanner; see standards#511.)

Verified before opening: gitleaks detect --exit-code 1 passes on this tree.

Part of the estate-wide sweep of ~200 repos still on the pre-#500 pin.

🤖 Generated with Claude Code

hyperpolymath and others added 2 commits July 21, 2026 06:46
The caller pinned standards' secret-scanner-reusable at @d135b05
(2026-06-24), which is 64 commits behind standards#500. At that pin the
gitleaks step carries `continue-on-error: true` — the scan runs, reports
success, and cannot fail. This repo's Secret Scanner has therefore been
green while being incapable of failing.

Re-pinned to @c65436ee, which contains #500: gitleaks now runs as a
pinned, checksum-verified binary with `--exit-code 1` and gates for real.

Also narrowed the caller's grant to `contents: read`. The new reusable
invokes a binary rather than gitleaks-action, so it no longer requests
`pull-requests: write` / `actions: read`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…le run

Bisected on http-capability-gateway 2026-07-21 with two isolation branches:

  exp/scan-only        (reusable only)  -> 3 jobs created, run executes
  exp/trufflehog-only  (trufflehog only) -> 0 jobs created, startup_failure

startup_failure means no job is ever created, so the Secret Scanner has been
reporting nothing at all — not a red, an absence. This repo has had no secret
scanning since the pin landed. A required check that never reports is
indistinguishable from one still running, which is why this went unnoticed.

The action is allowlisted (`trufflesecurity/trufflehog@*` is in
patterns_allowed, github_owned_allowed=true), so this is not an Actions-policy
rejection; the reference itself fails to resolve at run creation.

Removing it loses no coverage: standards' secret-scanner-reusable dropped
trufflehog deliberately ("Trufflehog removed: gitleaks provides sufficient
coverage at lower cost"), and the reusable's gitleaks + rust-secrets +
shell-secrets jobs now run for real on this repo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@hyperpolymath
hyperpolymath merged commit fd5456f into main Jul 21, 2026
15 of 18 checks passed
@hyperpolymath
hyperpolymath deleted the security/real-secret-gate branch July 21, 2026 15:23
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