You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在pre-commit中配置TruffleHog遇仓库不存在错误,求可用配置示例

问题修复与可用配置示例

问题根源

  1. 配置语法错误:你的pytest-check hook下冗余了repos字段,这是无效配置,导致了警告信息。
  2. 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-check hook下多余的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:35:23