这个项目能做什么

ggshield 是 GitGuardian 推出的命令行应用,用于检测代码中的硬编码密钥。它可在本地或 CI 中运行,覆盖 500 多种密钥类型,通过 py-gitguardian 客户端调用 GitGuardian 的公共 API 来扫描文件和其他文本内容。 README 中的隐私说明:扫描仅存储调用时间、请求大小和扫描模式等元数据,因此密钥不会显示在你的仪表板上,文件和密钥也不会被存储。 安装方式非常丰富:推荐用于 Linux/macOS 的安装脚本和 Windows PowerShell 脚本、macOS 上的 Homebrew、独立的 .pkg、通过 Cloudsmith 提供的 Deb 和 RPM 包、Windows 上的 Chocolatey 和 MSI 安装程序、独立的 .zip,以及通过 pipx(推荐)或 pip 从 PyPI 安装。独立包无需安装 Python,但需要手动更新。 设置需要向 GitGuardian 服务器进行身份验证。`ggshield auth login` 命令会创建个人访问令牌并在本地配置;你也可以手动创建令牌并设置 `GITGUARDIAN_API_KEY` 环境变量。旧版 `.gitguardian.yaml` 配置可通过 `ggshield config migrate` 迁移,迁移时会保留 `.old` 备份。 扫描目标包括文件(`ggshield secret scan path -r .`)、仓库(`ggshield secret scan repo .`)、Docker 镜像(需要 docker 命令)和 PyPI 包(需要 pip)。README 建议通过 `ggshield secret scan --help` 查看完整列表。 集成涵盖 CI/CD 工作流和 Git 钩子(pre-commit、pre-push、pre-receive),可在密钥进入版本控制之前将其拦截。值得注意的是,ggshield 还能实时扫描与 AI 编程助手的交互,并在包含密钥的操作执行前将其阻止;列出的支持工具包括 Cursor、Claude Code、Copilot Chat、Codex 和 Mistral Vibe 2.21+。钩子通过 `ggshield install` 安装。 输出行为:未发现密钥时退出码为 0。发现密钥时,工具会报告文件名并显示指示密钥位置的补丁,除非使用详细模式(`-v` 或 `--verbose`),否则长行会被截断。 README 还列出了相关的开源项目(truffleHog、gitleaks、gitrob、git-hound、AWS git-secrets、detect-secrets),并声明该项目采用 MIT 许可证。macOS 注意事项提醒:升级到 1.54.0 会触发针对 `ggshield-py` 的钥匙串提示,这是第二个二进制文件,作为性能改进的一部分读取已保存的令牌;用户应点击“始终允许”。