dsh-code-scan
其他 活跃维护

dsh-code-scan

xiaohuang-zaianlian/dsh-code-scan

semgrep实现的代码安全扫描工具,可快速对指定代码目录启动扫描,输出按文件、行号、严重级别分组的结果,支持大模型Agent直接调用获取代码风险信息,开箱即用。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
7 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:xiaohuang-zaianlian/dsh-code-scan
git clone https://github.com/xiaohuang-zaianlian/dsh-code-scan.git
git clone git@github.com:xiaohuang-zaianlian/dsh-code-scan.git
README.md main

dsh-code-scan

给 DeepSeek Harness(DSH)的 Agent 增加 code_scan 工具:对指定目录运行 semgrep 代码安全扫描,输出按文件、行号、严重级别分组的中文 Markdown 报告。

功能

  • 单个工具 code_scan,传入目录路径即可扫描。
  • 报告按文件分组,含行号和严重级别(ERROR / WARNING / INFO)。
  • 结果按严重级别优先排序,默认最多显示 200 条,避免撑爆 Agent 上下文。
  • 未安装 semgrep 时返回友好的中文提示,不会崩溃。

安装前提

本机需安装 semgrep,并保证 semgrep 命令在 PATH 上。Windows 建议用独立虚拟环境安装,避免污染其他 Python 环境:

python -m venv C:\Users\<你>\semgrep-venv
C:\Users\<你>\semgrep-venv\Scripts\pip install semgrep
# 把 C:\Users\<你>\semgrep-venv\Scripts 加入用户 PATH

安装插件

dsh plugin --profile web add dsh-code-scan

安装完成后重启 dsh web 生效。

使用

在 DSH 对话中让 Agent 扫描某个目录,例如:

用 code_scan 工具扫描 C:\path\to\your\project

报告示例:

# semgrep 扫描报告

- 扫描目录:`C:\...\demo`
- 发现问题:共 4 处(ERROR 2 / WARNING 2 / INFO 0)

## C:\...\app.py(2 处)

- [ERROR] 第 8 行 · 规则 `...sqlalchemy-execute-raw-query`:Avoiding SQL string concatenation...
- [WARNING] 第 18 行 · 规则 `...eval-detected`:Detected the use of eval()...

工作原理

  1. 调用 semgrep scan --json <目录>。
  2. 解析 JSON,提取文件、行号、严重级别、规则 id、描述。
  3. 按严重级别优先排序,并截断到上限条数。
  4. 生成中文 Markdown 报告返回给 Agent。

License

MIT