Skip to content

fix(secret-scanner): stage THE estate baseline, not standards' own gitleaks config - #600

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/gitleaks-estate-baseline-path
Aug 7, 2026
Merged

fix(secret-scanner): stage THE estate baseline, not standards' own gitleaks config#600
hyperpolymath merged 1 commit into
mainfrom
fix/gitleaks-estate-baseline-path

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Every consumer repo without its own .gitleaks.toml is currently failing the gitleaks gate:

FTL failed to load extended config, err: open config/gitleaks/estate-baseline.toml: no such file

Cause

The reusable sparse-checks-out standards/.gitleaks.toml and copies it into the consumer as .gitleaks-estate.toml.

But that file is not the baseline — it is standards' own repo config, and it is itself a consumer of the baseline:

[extend]
path = "config/gitleaks/estate-baseline.toml"

[extend] path resolves against the process working directory — standards' own config comments say so explicitly, having verified it empirically. Inside standards that path exists. Copied into a consumer it does not, so gitleaks aborts before scanning anything: zero files scanned, gate failed. The failure looks like a secret-scanning problem and is actually a config-staging one.

Fix

Stage config/gitleaks/estate-baseline.toml instead. Two lines — the sparse-checkout path and the cp.

That is what the baseline file's own header already documents:

"This file is the single shared allowlist for the whole estate. It is staged into a consumer repository's workspace root as .gitleaks-estate.toml by .github/workflows/secret-scanner-reusable.yml"

…so the workflow was contradicting the file it was meant to be staging. The baseline extends only gitleaks' built-in rules (useDefault = true), so it requires no path resolution in the consumer — the failure mode does not recur one level down.

Evidence

Observed on my-lang run 31187815519. my-lang has no .gitleaks.toml of its own, so it took the estate path and died. Verified: YAML parses, registry check clean.

🤖 Generated with Claude Code

…nfig

Every consumer without its own .gitleaks.toml has been failing the
gitleaks gate with:

  FTL failed to load extended config, err: open
      config/gitleaks/estate-baseline.toml: no such file

The reusable sparse-checked-out standards/.gitleaks.toml and copied it
into the consumer as .gitleaks-estate.toml. But that file is not the
baseline — it is standards' own repo config, and it CONSUMES the
baseline via

    [extend]
    path = "config/gitleaks/estate-baseline.toml"

`[extend] path` resolves against the PROCESS working directory (as
standards' own config comments state). Inside standards that path
exists; copied into a consumer it does not, so gitleaks aborts before
scanning anything and the gate fails — scanning ZERO files while
reporting a failure.

Stage config/gitleaks/estate-baseline.toml instead. That file's own
header already documents this exact staging as the intended behaviour,
and it extends only gitleaks' built-in rules (useDefault = true), so it
needs no path resolution in the consumer.

Observed on my-lang (run 31187815519); affects every consumer repo that
does not carry its own .gitleaks.toml.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@gitar-bot

gitar-bot Bot commented Aug 7, 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

Updates the secret scanner workflow to stage the shared estate baseline gitleaks configuration instead of the standards repository's own config. No issues found.

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.

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 3 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 7, 2026 15:51

@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 7, 2026
@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath disabled auto-merge August 7, 2026 15:58
@hyperpolymath
hyperpolymath merged commit c139238 into main Aug 7, 2026
27 of 30 checks passed
@hyperpolymath
hyperpolymath deleted the fix/gitleaks-estate-baseline-path branch August 7, 2026 15:58
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