已合并
feat(pre-commit): 集成 Gitleaks 本地离线密钥扫描功能 #409
yuliangbin创建于 7月11日
feat(pre-commit): 集成 Gitleaks 本地离线密钥扫描功能 #409
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 yuliangbin 的贡献)atomgit-bot
7月11日 评论:
7月11日 评论:
变更摘要
此 PR 在 pre-commit 阶段集成本地离线 Gitleaks 二进制密钥扫描功能,通过在 .pre-commit-config.yaml 中新增 gitleaks-offline-scan local hook,并引入 pre-commit/.gitleaks.toml 配置文件,实现对暂存文件中的 AK/SK、Token 等敏感凭证信息进行提交前拦截,从源头防止密钥泄露进入 Git 历史。
主要改动
- 新增 Gitleaks pre-commit hook:在
.pre-commit-config.yaml中添加gitleaks-offline-scanlocal hook,使用本地./gitleaks二进制执行protect命令,配合--verbose、--redact参数及自定义配置文件,在pre-commit阶段对传入文件名执行密钥扫描。 - 新增 Gitleaks 自定义配置文件:引入
pre-commit/.gitleaks.toml,通过[extend] useDefault = true继承官方内置全套检测规则(AWS、Git、SSH、OBS 等),并预设自定义规则、全局白名单([[allowlists]])、行内屏蔽(# gitleaks:allow)等扩展配置的注释示例,方便后续按需启用。 - 全局扫描参数设定:在
.gitleaks.toml中配置minEntropy = 3.0、redact = true、maxMatchLength = 2048等基础扫描参数,并禁用 Git 历史扫描(scanGitHistory = false),仅聚焦暂存区变更内容。


ascend-robot
7月11日 评论:
7月11日 评论:
atomgit-bot
7月11日 评论:
7月11日 评论:
代码审查
审查总结
已完成对全部 2 个变更文件的审查:
| 文件 | 审查结果 |
|---|---|
.pre-commit-config.yaml |
发现 2 个问题(P1 + P2) |
pre-commit/.gitleaks.toml |
无问题 |
问题统计
- P1(1 个):
pass_filenames: true与gitleaks protect子命令不兼容,导致 hook 在存在暂存文件时始终失败,密钥扫描功能完全失效。 - P2(1 个):缺少
--staged标志,导致扫描范围不精确(可能扫描未暂存的变更),在git add -p部分暂存等常见场景下产生误报。
整体风险判断
中等风险。P1 问题会导致 Gitleaks pre-commit hook 在正常使用场景下报错退出,使密钥扫描功能形同虚设。两个问题修复成本低(各改一行配置),建议在合入前修复。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 1 |
| 🟡 建议 | 2 |
⛔ 需要修改


pre-commit/.gitleaks.toml
@@ -0,0 +71,2 @@
71+# 方式1:仅屏蔽当前单行密钥告警(推荐)
72+# access_key = "AKXXXXXXXXXXXXXXXXXXXX" # gitleaks:allow
73+#
【openlibing.ci】识别到代码检查告警抑制注释,匹配工具:gitleaks,请Committer检视其合理性。


7月11日 添加了label:ascend-cla/yes
此处折叠了103条消息 查看更多
7月13日 添加了label:lgtm
ascend-robot
7月13日 评论:
7月13日 评论:
The MR can not be merged, because of CodeReview discussion not resolved
If you want to solve this problem, you can click here to do it in the FAQs.


7月13日 合入了pull request
ascend-robot
7月13日 评论:
7月13日 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


PR 合入模板
注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。
1. 修改描述
修改原因:
1.密钥泄露是常见的安全风险,开发者可能在代码中硬编码 AK/SK、Token 等敏感信息
2.通过 pre-commit hook 在提交前拦截,从源头防止凭证进入 Git 历史
3.使用本地离线二进制扫描,无需网络连接,不依赖外部服务
修改内容:
1..pre-commit-config.yaml:新增 gitleaks-offline-scan local hook,使用本地 gitleaks 二进制执行 protect 命令,在 pre-commit 阶段对暂存文件进行密钥扫描
2.pre-commit/.gitleaks.toml:新增 Gitleaks 配置文件,继承官方内置全套检测规则(useDefault = true),并提供自定义规则、全局白名单、行内屏蔽等扩展配置示例
2. 功能验证
3. 分支合并要求
3. 代码检视
要求:
检视意见数:____ 条 (请填写本次检视的意见总数,用于commit合入前审视)
4. 安全自检
Python、C++
C++
5. 变更知会