安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
为DeepSeek Harness提供审查标签页和围栏式Git工作台,包含文件树、差异、泳道图与受保护的Git操作。
- 文件树与差异视图便于代码审查
- 泳道图清晰展示分支拓扑
- 受保护的Git操作确保安全
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add dsh-git-review安装方式: npm · 运行验证通过 (L5)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
依据:1 条要求、覆盖 4 个 @deepseek-ai/dsh-* 子包。 看原始区间
^0.1.2-rc.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.1 || ^0.1.7-alpha.1 || ^0.2.0-rc.1 ×4
✓ 当前 dsh 0.2.1-rc.2 在支持范围内 —— 安装不会因版本被拒。
能否正常运行是另一件事 → 见下方实测矩阵(L1–L5)。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.1.7-rc.2 |
|---|---|---|---|---|---|
| 0.1.8 | ✓ | ✓ | ✓ | ✓ | · |
| 0.1.7 | · | · | · | · | ✓ |
| 0.1.6 | · | · | · | · | · |
| 0.1.5 | · | · | · | · | · |
| 0.1.0 | · | · | · | · | · |
0.1.8npm✓ 运行验证通过 52026-10-20
dsh-git-review
✓dsh 0.2.1-rc.2当前2026-10-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: npm · dsh-git-review@0.1.8
ID: dsh-git-review-2@0.1.8@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-20 · 有效至:2026-10-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.42026-10-18L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: npm · dsh-git-review@0.1.8
ID: dsh-git-review-2@0.1.8@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-18 · 有效至:2026-10-25
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.22026-10-12L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: npm · dsh-git-review@0.1.8
ID: dsh-git-review-2@0.1.8@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-12 · 有效至:2026-10-19
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.22026-10-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: npm · dsh-git-review@0.1.8
ID: dsh-git-review-2@0.1.8@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-09 · 有效至:2026-10-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-09-30L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: npm · dsh-git-review@0.1.8
ID: dsh-git-review-2@0.1.8@dshunknown · 档位: l3-fullscan
签发:2026-09-30 · 有效至:2026-10-07
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
0.1.7npm✓ 运行验证通过 22026-09-29
dsh-git-review
✓dsh 0.1.7-rc.22026-09-26L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: npm · dsh-git-review@0.1.7
ID: dsh-git-review-2@0.1.7@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-26 · 有效至:2026-10-03
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.12026-09-24L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: npm · dsh-git-review@0.1.7
ID: dsh-git-review-2@0.1.7@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-24 · 有效至:2026-10-01
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
0.1.6npm✓ 运行验证通过 22026-09-23
dsh-git-review
✓dsh 0.1.6-alpha.22026-09-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: npm · dsh-git-review@0.1.6
ID: dsh-git-review-2@0.1.6@dsh0.1.6-alpha.2 · 档位: l4-sandbox
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.12026-09-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: npm · dsh-git-review@0.1.6
ID: dsh-git-review-2@0.1.6@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
0.1.5npm2026-09-13
dsh-git-review
该版本无运行时安装实测(仅静态扫描)——兼容性未知,不推定。
0.1.0npm2026-09-12
dsh-git-review
该版本无运行时安装实测(仅静态扫描)——兼容性未知,不推定。
仅展示最近 3 个已发布版本;源码快照(commit hash)组、未标注工件组与更早版本不展示——全量档案保留在数据层(插件无任何已发布版本时,快照/未标注组才照常展示)。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-git-review-2/)``[](https://www.dsh.so/artifact/dsh-git-review-2/)``[](https://www.dsh.so/artifact/dsh-git-review-2/)``[](https://www.dsh.so/artifact/dsh-git-review-2/)``[](https://www.dsh.so/artifact/dsh-git-review-2/)``[](https://www.dsh.so/artifact/dsh-git-review-2/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
v0.1.8dsh 清单0.1.8npm2026-10-220.1.8版本一致clean · npmvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(6 条)
- 警告childProcess · code-exec
lib/index.js:1282const child = spawn("git", [ - 警告childProcess · code-exec
lib/index.js:2034const child = spawn("git", [ - 警告childProcess · code-exec
lib/index.js:2838const child = spawn(argv[0], argv.slice(1), { - 警告shellExec · shell
lib/index.js:534execFile("git", [ - 警告shellExec · shell
lib/index.js:1690execFile("git", ["init"], { - 警告shellExec · shell
lib/index.js:2010execFile("git", [
展开 5 条审计发现
- high请求传入的 cwd 未做任何限定,可对主机任意文件读写删除
lib/index.jscwd 直接取自 JSON 请求体,仅做 realpath,从不校验是否属于当前会话工作区或白名单。所有围栏(fenceRepoPath/fenceWorkspacePath/fenceWorkspaceDir)都以这个由调用方选定的根目录为基准,因此 `cwd: "/"`(或任意非仓库目录)即可让 file-content、file-bytes、fs-list、list-files、file-op、open-with 作用于文件系统任意位置——例如用 file-content 读取 /etc/passwd、列目录,或在客户端自设 confirm 后通过 `await rm(absPath, { recursive: stat.isDirectory(), force: false })` 删除/重命名任意文件。
- medium路径围栏仅用 resolve()/relative() 未做 realpath,符号链接目录可越出仓库根
lib/index.jsinside() 只比较字面相对路径,resolve() 不解析符号链接。若仓库中存在指向外部的符号链接目录(克隆恶意仓库即可获得),`path: "link/secret"` 就能通过围栏,而 lstat/open 会跟随该链接,使 file-content、fs-list、file-op 的删除/重命名以及 open-with 触及仓库/工作区之外的目标。
- medium破坏性 git/文件操作仅靠客户端传入的 confirm 标志把关,API 自身无鉴权与 CSRF 校验
lib/index.jsconfirm 是请求体里的普通布尔值,与 push、reset --hard、clean -fd、branch -D、stash drop 或文件删除由同一请求携带,只是界面提示而非安全控制。前缀处理器不做来源/token 校验,安全性完全依赖宿主 webServer 前置防护,任何同源脚本或能发送 application/json POST 的客户端都可执行破坏性仓库操作。
- lowopen-with 对任意围栏内路径拉起桌面程序,放大 cwd 缺陷
lib/index.js参数以 argv 数组传递(不经 shell),但该动作会对由请求推导出的绝对路径启动系统默认处理器(xdg-open)或 explorer/code;叠加未限定的 cwd,可打开任意文件,且在 Windows 上 `"/select," + absPath` 是单个未加引号的参数。
- low用户正则仅经启发式筛查即被用于多兆字节 diff,存在 ReDoS 风险
lib/index.jsisPathologicalRegex 只识别括号内的嵌套量词形式;诸如 `a*a*a*a*b`(最长 200 字符)的模式会被编译并作用于上限 DIFF_CAP(2 MB)的 diff 片段,可能长时间阻塞宿主事件循环。
该插件通过本地 HTTP API 提供 git 与文件操作,但围栏根目录 cwd 完全由请求方控制,任意调用者可读取、修改或删除主机上任意文件。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-29 · 活跃度:活跃
• 仓库创建: 2026-09-05
• 星标: ★ 2 · 复刻: 0
• 健康度: 活跃 — 近 30 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
