这是一个的 GitLab 代码审计与关键字搜索工具。它支持多线程并发搜索、多分支自动切换以及富文本终端输出,旨在帮助开发人员和安全审计人员快速定位多个项目中的敏感信息或特定代码逻辑。
- 多分支联动:默认同时搜索
master和main分支,确保覆盖不同仓库的默认命名习惯。 - 高性能并发:通过
ThreadPoolExecutor支持跨项目、跨关键字并行搜索,极大提升扫描效率。 - 富文本美化:使用
rich库生成带颜色的表格,并自动高亮代码片段中的匹配关键字。 - 健壮性增强:内置
tenacity自动重试机制,并能智能处理 GitLab API 的429 (Too Many Requests)速率限制。 - 多格式导出:支持将搜索结果导出为
.xlsx(Excel)、.csv或.json文件。
在运行工具前,请确保安装以下 Python 第三方库:
pip3 install -r requirements.txt搜索指定分组(Group)及其所有子组下项目的 master 和 main 分支:
python main.py -u [https://gitlab.example.com](https://gitlab.example.com) -t YOUR_TOKEN -g 123 -k "password" "api_key"搜索指定项目的 master 和 main 分支:
python main.py -u [https://gitlab.example.com](https://gitlab.example.com) -t YOUR_TOKEN -p 456 -k "password" "api_key"搜索指定项目的自定义分支(默认 master 和 main):
python main.py -u [https://gitlab.example.com](https://gitlab.example.com) -t YOUR_TOKEN -p 456 -b feature-branch -k "password" "api_key"| 短参数 | 长参数 | 描述 | 默认值 |
|---|---|---|---|
-u |
--url |
GitLab 服务器 URL (例如: https://gitlab.com) |
- |
-t |
--token |
GitLab API Private Token (需具备 read_api 权限) |
- |
-k |
--keywords |
要搜索的关键字列表,支持同时输入多个关键字 | - |
-g |
--group |
GitLab 分组 ID (按组搜索时必填) | - |
-p |
--project |
单个项目 ID (按特定项目搜索时使用) | - |
-b |
--branch |
搜索的目标分支列表,支持指定多个分支进行扫描 | master main |
-o |
--output |
导出文件路径 (支持扩展名: .xlsx, .csv, .json) |
默认终端展示 |
-v |
--verbose |
开启详细模式,显示搜索过程中的调试信息与速率限制提醒 | False |
