用途:在提交代码前进行安全校验与密钥检测,防止硬编码凭据、密钥泄漏进仓库或 PR。核心能力包括使用 gitleaks 通过正则与熵分析扫描硬编码密钥;配置 pre-commit 钩子实现提交前自动校验;通过 .gitleaks.toml 声明式白名单管理误报;以及提供一键安全扫描脚本。
使用方式:安装 gitleaks 可用 brew install gitleaks、go install github.com/gitleaks/gitleaks/v8@latest 或下载二进制。扫描仓库用 gitleaks detect --source .,仅扫描暂存区用 gitleaks protect --staged。一键扫描脚本:bash "${CLAUDE_PLUGIN_ROOT}/skills/git-security-checks/scripts/security-scan.sh",加 --staged-only 只检查即将提交的文件。pre-commit 集成在 .pre-commit-config.yaml 中引用 gitleaks 仓库与钩子,然后 pre-commit install 安装钩子。误报处理有三种声明式方法:行内注释 # gitleaks:allow、.gitleaks.toml 中按路径排除、按正则白名单,以及针对特定规则的 per-rule allowlist。
适用场景:提交前扫描密钥、配置 .gitleaks.toml 白名单与 pre-commit 集成、验证 PR 中无凭据泄漏、CI 中 gitleaks 扫描失败后的修复。
限制与注意:pre-commit run gitleaks --files <path> 并不会限定扫描范围,因为上游钩子声明 pass_filenames: false,其入口扫描 --staged;在干净工作区中未暂存任何内容时会显示 Passed 但实际扫描零字节,属于假通过。正确做法是先 git add <paths> 再 pre-commit run gitleaks。建议先阅读上游 .pre-commit-hooks.yaml 中的 pass_filenames,并用已知高熵令牌(如 JWT)做对照测试,注意 gitleaks 不会标记 AWS 官方文档示例密钥。更多检测规则、误报管理、泄漏修复与 CI/CD 集成见 REFERENCE.md。