在pre-commit中配置TruffleHog遇仓库不存在错误,求可用配置示例
问题修复与可用配置示例
问题根源
- 配置语法错误:你的
pytest-checkhook下冗余了repos字段,这是无效配置,导致了警告信息。 - TruffleHog路径错误:Docker命令中指定的仓库路径
/jonas_asad不存在,容器内挂载的本地项目目录是/workdir,需要指向这个路径;另外原命令的扫描方式也不符合pre-commit的场景,应该聚焦扫描当前待提交的变更。
修正后的完整.pre-commit-config.yaml配置
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: check-yaml - id: end-of-file-fixer - id: trailing-whitespace - repo: https://github.com/psf/black rev: 22.1.0 hooks: - id: black additional_dependencies: ['click==8.0.4'] - repo: local hooks: - id: pytest-check name: pytest-check stages: [commit] types: [python] entry: pytest language: system pass_filenames: false always_run: true - repo: local hooks: - id: trufflehog name: TruffleHog description: Detect secrets in your data. entry: bash -c 'docker run -v "$(pwd):/workdir" --rm trufflesecurity/trufflehog:latest git file:///workdir --only-verified --fail --since-commit HEAD~1' language: system stages: ["commit", "push"] pass_filenames: false always_run: true
关键修正说明
- 移除
pytest-checkhook下多余的repos字段,修复语法警告。 - 调整TruffleHog的Docker命令:
- 将仓库路径改为
file:///workdir,对应容器内挂载的本地项目目录。 - 添加
--since-commit HEAD~1参数,仅扫描最近一次提交的变更(适配pre-commit提交前扫描场景,避免扫描整个仓库历史)。 - 移除不必要的
-i参数。 - 为TruffleHog hook添加
pass_filenames: false和always_run: true,确保每次提交都执行扫描,不受文件类型限制。
- 将仓库路径改为
使用验证
执行以下命令重新安装钩子并测试提交:
pre-commit install && git add . && git commit -m "test trufflehog fix"
内容的提问来源于stack exchange,提问作者JnooriRS
相关产品推荐
相关产品推荐

