Catch leaked secrets before `git push`, with one stdlib Python file

2026-10-27来源 dev.to SecurityEnglish

Everyone has a story about an API key that landed in a public repo. Usually it is not carelessness: a .env file was not in .gitignore yet, or a quick test left a password in a config file, and git add -A did the rest.

Dedicated scanners exist, but sometimes you just want a fast local check with no install, no account and no network. So I wrote the env-secrets-scanner skill for Hermes Agent. It ships a single Python script using only the standard library.

It walks a folder (or just your staged files), flags real .env files while ignoring .env.example, and matches common token formats: private key blocks, AWS key IDs, GitHub and Slack tokens, JWTs, passwords inside connection URLs, and suspicious password = "..." style assignments. Placeholders like your_key_here are skipped. Output is masked (k8J*****41), so the report is safe to share.

python3 scripts/scan_secrets.py . --staged # .env:0 [env-file] (file name) # cfg.py:1 [generic-assignment] k8J*****41 # 2 finding(s) 

The exit code is 1 when something is found, so it drops straight into a pre-commit hook.

It is a pattern matcher: it can miss exotic formats, does not read git history, and does not check whether a key is still valid. Treat it as a safety net before the commit, and rotate anything that already leaked.

Skill (MIT): the hermes-skills library.

Skill (MIT): https://github.com/RobinBeraud/hermes-skills/tree/main/security/env-secrets-scanner
All skills: https://github.com/RobinBeraud/hermes-skills

This post was written with AI assistance and reviewed through automated checks.

原文:https://www.a8q9.cn/en/article/catch-leaked-secrets-before-git-push-with-one-stdlib-python-file-f2dd82.html

相关文章