New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

dsh-git-helper

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-git-helper

Safety-first Git helper for DeepSeek Harness: status, diff, log, branch, tag management, branch comparison and guarded commit.

latest
npmnpm
Version
0.3.0
Version published
Maintainers
1
Created
Source

dsh-git-helper

安全优先的 Git 工具插件(dsh-git-helper v0.3.0):只读的状态/差异/历史/分支查询、标签管理与分支对比,加上一个带三重防护的提交工具。

安装

npm install dsh-git-helper

工具列表

git_status

查看工作区状态:当前分支、与上游的领先/落后、已暂存/未暂存/未跟踪/冲突文件分类列表。无参数。

git_diff

查看差异,支持三种范围:

参数类型说明
scopestringunstaged(默认)/ staged / commit
commitstringscope=commit 时必填,如 "a1b2c3d"、"HEAD~1"
pathstring可选,限定文件或目录
context_linesnumber可选,上下文行数 0–10,默认 3

输出附带变更摘要(文件数/±行数);超过 8000 字符自动截断并提示缩小范围。

git_log

提交历史,格式 短哈希 | 作者 | 日期 | 标题。

参数类型说明
limitnumber1–50,默认 10
authorstring按作者过滤
sincestring如 "2026-09-01"、"2 weeks ago"
oneline_onlyboolean默认 true;false 时附带变更文件统计

git_branch

分支概览(只读):当前分支标记、各分支最近提交、与上游的领先/落后。

参数类型说明
include_remoteboolean默认 false

git_commit

受控提交,三重防护:

  • 前置校验:暂存区为空且未指定暂存方式时拒绝提交并列出可提交文件;存在合并冲突时拒绝。
  • 提交信息规范:非空、首行 ≤72 字符,详细说明放到空行后的正文。
  • 后置确认:返回提交哈希 + 变更统计。
参数类型说明
messagestring必填
filesstring[]可选,指定要提交的文件(先 add 再提交)
add_allboolean默认 false;true 时 git add -A

git_tag

标签管理与查询。

参数类型说明
actionstringlist(默认)/ create / delete
namestringcreate/delete 必填,标签名(如 v1.2.0、dsh-foo@0.3.0)
messagestring可选(create),填写则创建附注标签,省略为轻量标签
commitstring可选(create),目标提交,默认 HEAD
patternstring可选(list),glob 过滤,如 dsh-foo@*
limitnumber可选(list),条数 1-100,默认 20
pushboolean可选,是否同步操作 origin,默认 false(仅本地)

list 按创建时间倒序输出名称、附注/轻量、日期与说明;create 校验重名与非法名称(含空白、以 - 开头);delete 只删本地标签。远端发布需要标签先推送——不传 push 时返回结果会附上 git push origin <tag> 的提示,这是 tag 触发 CI 发布的关键一步。

git_branch_diff

两个分支/修订的对比摘要,默认两点比较(base..target)。

参数类型说明
basestring必填,对比基准(如 main)
targetstring可选,对比目标,默认 HEAD
modestringstat(默认,文件级摘要)/ files(变更文件清单)/ patch(完整差异,自动截断)
three_dotboolean可选,改用三点比较 base...target,只看 target 侧引入的变更
pathstring可选,限定文件或目录
limitnumber可选,files 模式条数 1-200,默认 50

输出包含双向提交差(base 独有 / target 独有),files 模式把状态码翻译成中文(新增/修改/删除/重命名)。两点比较看的是"两端快照差异",要排除 base 侧新增带来的反向差异时用 three_dot: true。

安全边界

本插件不提供 push、branch 删除、rebase/merge、checkout 丢弃改动、stash、amend 等破坏性操作;唯一例外是 git_tag 的 push=true(显式传参才会推送标签,默认仅操作本地)。git 命令通过 execFile 调用(无 shell 注入面),超时 15 秒。

测试

npm test

测试在临时 git 仓库中运行,覆盖状态识别、差异截断、历史过滤、提交防护与正常路径、标签创建/过滤/重名与非法名校验/删除、分支对比三种模式与三点切换、非仓库目录报错,共 56 项断言。

版本历史

0.3.0(2026-09-30)

  • 新增 git_tag 工具:标签列表(pattern 过滤、附注/轻量标注)、创建(附注/轻量、指定目标提交)、删除;push=true 可同步 origin
  • 新增 git_branch_diff 工具:两点/三点分支对比,输出双向提交差与 stat/files/patch 三种视图
  • 测试扩展到 56 项断言

0.2.0(2026-09-13)

  • 新增 git_blame 工具:行级追溯 + 作者分布统计(兼容 boundary 提交)
  • 新增 check_commit_message 工具:提交信息体检(长度/CC 格式/正文分段)
  • git_commit 新增 strict_cc 参数:Conventional Commits 强校验

Roadmap(v0.4 候选)

  • git stash / restore 支持
  • 提交历史筛选(按文件、按区间统计作者贡献)

源码与发布地址

  • 源码:https://github.com/geeklei/dsh-plugins/tree/main/dsh-git-helper
  • npm:https://www.npmjs.com/package/dsh-git-helper

典型场景

1. 提交前检查

用户:帮我看看现在有哪些改动,准备提交

git_status + git_diff 快速了解工作区状态与改动内容。

2. 提交信息规范校验

用户:我的 commit message 符合规范吗

check_commit_message(支持 strict_cc 严格 Conventional Commits)逐项给出检查结论。

3. 追溯某行的来龙去脉

用户:这一行为什么这么写

git_blame 定位作者与提交(已兼容首笔提交的 boundary hash)。

4. 分支与历史梳理

用户:这个分支从哪切的、最近谁改了什么

git_branch + git_log 组合查看。

5. 生成提交

用户:把这次改动提交了

git_commit 生成提交(提交信息建议先过 check_commit_message)。

其他插件集成说明

协作插件集成方式
dsh-text-diff用 diff_text 得到统一差异,与本插件 git_diff 输出互相印证
dsh-hash-checksum对关键文件取摘要,确认提交前后内容一致
dsh-workspace-journal把提交记录写入工作区日志,形成变更时间线
dsh-fs-inspector提交前用 recent_files 确认没有意外改动的大文件
dsh-todo-audit(二期 D13)提交前扫描 TODO/FIXME,避免把未完成标记带入主干

FAQ

Q:git_commit 会自动 push 吗? 不会,只做本地提交。推送需显式执行,且注意凭据助手(Windows 下建议 -c credential.helper=manager)。

Q:blame 首笔提交为什么特殊? Git 对 boundary 提交的 hash 会加 ^ 前缀,本插件已兼容解析,不会漏掉最后一行。

Q:能在无 tty 环境用吗? 可以,所有 git 调用均以非交互方式执行,不会卡在等待输入。

Q:会修改我的仓库吗? 只有 git_commit 会写(产生提交);其余工具均为只读查询。

Keywords

dsh

FAQs

Package last updated on 30 Sep 2026

Related posts