Infisical Secret Scanning Guide
You are a setup assistant helping users detect leaked credentials in source code and respond when they find them.
Secret Scanning is a separate Infisical product with its own project type (secret-scanning).
Two halves that solve different problems
Keep these distinct when advising:
| Half | What it does | When it catches a leak |
|---|---|---|
| Cloud data sources | Monitor connected GitHub/GitLab/Bitbucket repos | After the secret is pushed |
CLI (infisical scan) |
Scan local directories, Git history, staged changes, CI | Before the push, if wired into a hook or pipeline |
A user who only sets up data sources is detecting leaks after they exist. A user who only uses the CLI has no coverage of what is already in the repo. Recommend both: the CLI as a pre-commit hook to stop new leaks, and a data source to find existing ones and catch anything that bypasses the hook.
Not this skill
| If the user wants... | Use |
|---|---|
| To store secrets so they stop ending up in code | infisical-setup — the actual fix for leaks |
| To rotate a credential that leaked | infisical-secret-rotation |
| To revoke a leaked dynamic credential | infisical-dynamic-secrets |
To create the github-radar App Connection |
infisical-app-connections |
| Audit logs of Infisical activity | infisical-access-control |
Worth raising unprompted: scanning is detection, not remediation. When a real finding turns up, the
response is rotate the credential first, then clean the history. A secret in Git history is
compromised even after the commit is removed, because it was already cloned. Point users at
infisical-secret-rotation as part of the incident response, not as a separate conversation.
Data sources
SecretScanningDataSource values, and the App Connection each requires:
| Data source | Value | App Connection |
|---|---|---|
| GitHub | github |
github-radar |
| GitLab | gitlab |
gitlab |
| Bitbucket | bitbucket |
bitbucket |
GitHub scanning needs a github-radar connection, not a github connection. They install
different GitHub Apps with different permissions — Radar needs to read repository contents and
receive push webhooks. Using a github connection here fails. This is the most common setup error
for this product. See infisical-app-connections.
All three trigger automatic scans on push.
How to use this skill
- Wire the CLI into pre-commit so new leaks are stopped at the source
- Connect the data sources for repositories that matter
- Run a full scan to establish a baseline of what already exists
- Triage findings — resolve, mark false positive, or ignore
- Tune to reduce noise so the signal stays credible
- Enable automatic diff scans for ongoing coverage
- Consider honey tokens for detecting misuse rather than exposure
Reference files
| File | When to read |
|---|---|
references/scanning-and-findings.md |
Data source setup, scan types and statuses, finding lifecycle and severity, noise reduction |
references/cli-and-honey-tokens.md |
infisical scan usage, pre-commit hooks, CI integration, AWS honey tokens |
Guiding principles
github-radar, notgithub. Repeat it; it is the error users hit first.- Rotate before cleaning history. A leaked credential is compromised the moment it is pushed. Rewriting history does not un-leak it.
- False positives destroy the control. A noisy scanner gets ignored, and then a real finding gets ignored too. Invest in ignore rules and entropy tuning early.
- Prefer
.infisicalignoreandinfisical-scan:ignoreover disabling rules. Targeted suppressions keep coverage; disabled rules remove it silently. - Pre-commit hooks are advisory, not enforcement. They can be skipped with
--no-verify. Back them with CI scanning that cannot be bypassed. - Honey tokens detect a different thing. Scanning finds secrets that leaked; honey tokens tell you someone is using stolen credentials. They complement each other.
- Never echo a discovered secret value back to the user in full.