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

Gitleaks扫描:如何避免显示历史提交中的失败记录?

解决Jenkins中Gitleaks扫描显示历史失败记录的问题

Gitleaks默认会扫描整个仓库的历史提交,所以即便你修复了问题,旧的漏洞记录还是会被检测出来。试试这几种方法来只关注新的或当前的问题:

  • 仅扫描增量提交(推荐)
    不要执行全量扫描,只针对最新的提交或本次变更的内容扫描。在Jenkins的Gitleaks执行命令里添加参数:

    • 扫描当前提交:gitleaks detect --commit=$GIT_COMMIT
    • 扫描上一次到当前的提交差异:gitleaks detect --diff=HEAD~1..HEAD
      Jenkins会自动提供$GIT_COMMIT、$GIT_PREVIOUS_COMMIT这类环境变量,直接用来指定扫描范围即可。
  • 生成基线文件忽略已修复漏洞
    先跑一次全量扫描导出基线文件,把已有的漏洞记录存进去,后续扫描就会自动忽略这些旧问题:

    1. 生成基线:gitleaks detect --report-format json --output baseline.json
    2. 后续扫描指定基线:gitleaks detect --baseline baseline.json
      注意:每次修复完一批漏洞后,最好重新生成基线,避免漏掉新出现的问题。
  • 配置规则排除特定历史漏洞
    如果只是少数特定的历史提交漏洞需要排除,可以修改.gitleaks.toml配置文件,添加排除规则:

    [[rules]]
    id = "exclude-historical-secrets"
    description = "忽略已修复的历史秘密"
    regex = '''匹配你要排除的秘密正则'''
    exclude-commits = ["abc123def456", "789ghi012jkl"]
    

    把需要排除的提交哈希填到exclude-commits里,就能跳过对应提交的漏洞检测。

  • 仅扫描变更的文件
    在Jenkins流水线里,先获取本次构建变更的文件列表,再让Gitleaks只扫描这些文件:

    CHANGED_FILES=$(git diff --name-only $GIT_PREVIOUS_COMMIT $GIT_COMMIT)
    gitleaks detect --files $CHANGED_FILES
    

    这种方式适合只关心本次修改带来的问题,完全跳过历史未变更的文件。

内容的提问来源于stack exchange,提问作者Samyutha Rj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:45:36