已合并
新增gitleaks敏感信息检测 #953
lichunyang创建于 7月14日
新增gitleaks敏感信息检测 #953
已合并
Pull Request已成功合入, 合并人@zhangjinshi
(感谢 lichunyang 的贡献)atomgit-bot
7月14日 评论:
7月14日 评论:
变更摘要
此次 PR 为项目新增了 Gitleaks 敏感信息检测能力,通过在 pre-commit 阶段引入本地离线二进制扫描,自动拦截代码中意外提交的密钥、凭证等敏感数据。核心改动包括:在 .pre-commit-config.yaml 中注册 gitleaks-offline-scan hook,并新增 pre-commit/.gitleaks.toml 配置文件,该配置继承 Gitleaks 内置全部默认检测规则,同时预留了全局白名单、自定义规则、规则禁用等扩展入口。
主要改动
- 新增 pre-commit Gitleaks 扫描 hook:在
.pre-commit-config.yaml中注册local类型的gitleaks-offline-scanhook,入口为./gitleaks二进制,采用protect模式并启用--verbose与--redact参数,配置指向pre-commit/.gitleaks.toml,仅在pre-commit阶段触发。 - 新增 Gitleaks 配置文件
pre-commit/.gitleaks.toml:通过[extend]中useDefault = true继承工具内置全部密钥检测规则(如 AWS、Git、SSH、OBS 等),当前未禁用任何规则,也未新增自定义规则。 - 预留全局白名单框架:使用新版语法
[[allowlists]]定义白名单结构,当前以占位正则^$保证语法合规,同时以注释形式给出路径白名单、停用词(stopwords)和提交白名单的示例写法,便于后续按需启用。 - 设定全局扫描参数:配置
minEntropy = 3.0(最低熵值阈值)、redact = true(输出时脱敏)、maxMatchLength = 2048(最大匹配长度)、scanGitHistory = false(不扫描 Git 历史),当前仅针对暂存区变更进行检测。 - 注释中提供扩展指引:配置文件中以注释形式展示了如何通过
disabledRules批量禁用内置规则、如何新增[[rules]]自定义业务检测规则(如华为云 OBS AK/SK),以及如何在代码中使用# gitleaks:allow行内注释或# gitleaks:skip-file文件级注释进行局部屏蔽。


不准确?
ascend-robot
7月14日 评论:
7月14日 评论:
atomgit-bot
7月14日 评论:
7月14日 评论:
代码审查
审查完成总结
对本次 PR 涉及的 2 个变更文件 逐一审查完毕:
| 文件 | 审查结果 |
|---|---|
.pre-commit-config.yaml |
发现 1 个 P1 问题 — ./gitleaks 二进制文件在仓库中不存在,合入后将阻塞所有开发者的 git commit 操作 |
pre-commit/.gitleaks.toml |
无问题 — TOML 语法正确,配置项合理,注释详尽 |
发现统计
| 优先级 | 数量 |
|---|---|
| P0 | 0 |
| P1 | 1 |
| P2 | 0 |
| P3 | 0 |
整体风险评估
中等风险。新增的 gitleaks 敏感信息检测配置本身设计合理(继承内置规则、提供白名单框架、注释示例清晰),但核心依赖 ./gitleaks 二进制文件缺失,会导致所有开发者在合入后无法正常提交代码。建议在二进制分发方案就绪前,参照同文件中 ruff-check/pylint/bandit 的做法,将 stages 临时设为 [manual]。
| 类型 | 数量 |
|---|---|
| 🔴 阻塞 | 1 |
| 🟡 建议 | 2 |
⛔ 需要修改


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


ascend-robot
7月14日 评论:
7月14日 评论:
流水线 PR-pipeline_memfabric_hybrid#4335 [ commitID:780b3607 ] 已完成
| 阶段 | 任务名 | 状态 | 详情 |
|---|---|---|---|
| 编译构建 | Build_memfabric-hybrid | ✅ | >>> |
| Build_memfabric-hybrid-bazel | ✅ | >>> | |
| 恶意代码检查 | Antipoison_mf | ✅ | >>> |
| 编码安全与规范检查 | pre-commit | ✅ | >>> |
| CodeCheck_mf | ✅ | >>> | |
| 开源片段检查 | SCA_mf | ✅ | >>> |
| 开发者测试 | UT_memfabric-hybrid | ✅ | >>> |
| 流水线 | PR-pipeline_memfabric_hybrid | ✅ | >>> |
- compile : 运行流水线
- retry : 重试流水线所有失败子任务
- retry <任务名> : 仅重试指定失败子任务
- stop : 停止流水线


此处折叠了44条消息 查看更多
7月14日 修改了pull request 的描述
7月14日 通过审查
7月14日 解决了最后一个问题
7月14日 关闭了关联的issue
7月14日 合入了pull request
合入来源
问题/功能描述
新增gitleaks敏感信息检测
修改方案描述
引入gitleaks在线扫描工具
新增pre-commit/.gitleaks.toml配置,继承官方全部检测规则
配置pre-commit钩子,提交前自动扫描密钥硬编码风险。
是否涉及UT/ST
开发自检