dsh-auto-git

DSH PLUGIN开发与运行时

仓库 zhitiaojun/dsh-auto-git

开发与运行时 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为每个新注册的 DSH 工作区自动执行 git init 并补一个空提交,让 git 图谱等插件在各工作区都能正常显示分支。

一句话选型结论

按资料字段整理

dsh-auto-git 是开发与运行时类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-09-15 创建于 2026-09-14
README 5.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:zhitiaojun/dsh-auto-git
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 5 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 5 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-auto-git:为 DeepSeek Harness 工作区自动建仓的 DSH plugin

  • 新工作区自动 git init
  • 默认补一个空提交
  • 跳过嵌套仓库,幂等
  • 可配置分支与扫描范围

适用场景

GitHub 集成文件读写

上游标签

dshdsh-plugingitworkspace

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 5 个),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在开发与运行时场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-auto-git当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 5 个 有
deepseek-harness L3 · 安装规范通过 低风险 24.6 万 未标注 无
rea L4 · 沙盒安装通过 低风险 2.6 万 0.1.1-rc.2 有
dsh-TUI L4 · 沙盒安装通过 中风险 4,292 0.1.7-rc.2 等 5 个 有
mirage L3 · 安装规范通过 低风险 3,681 未标注 无
dashi-taskboard L4 · 沙盒安装通过 低风险 3,311 0.1.1-rc.2 有

仓库档案

开发与运行时
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方zhitiaojun仓库 dsh-auto-git · 默认分支 main
分类开发与运行时dev
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-14 · 2026-09-15最后推送 2026-09-15
本站收录2026-09-17首次进入本站目录的时间

README 全文

5.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-auto-git

为每个新注册的 DSH 工作区自动 git init,让 git 相关插件(如 @linxin666/dsh-client-ui-git-graph 的分支胶囊 / Git 图谱)在每个工作区都能出现。

为什么需要它

git-graph 插件的 host 侧 /git/* 路由有两道门(见其 src/index.ts 的 createWorkspaceGate 与 src/host/git-service.ts):

  1. 请求路径的 realpath 必须恰好等于某个已注册工作区路径(workspace.path === canonical,不接受子目录、不接受任意目录);
  2. 该路径必须是 git 仓库(git rev-parse --show-toplevel 成功),否则 status 返回 null。

前端 BranchChip 在 repo === null 时直接 return null —— 于是"非 git 工作区"里这个插件完全没有 UI。所以想让 git 功能"每个工作区都有",唯一办法是让工作区目录本身是仓库。

它做什么

  • 注册时:监听 domain/changed(domain === 'workspace' && table === 'workspaces' && operation === 'put'),对新工作区根目录执行 git init -b main。
  • 启动时:对启动前已注册的工作区做一次同样的扫描(可用 sweepExisting: false 关掉)。
  • 默认补一个空提交(git commit --allow-empty):仓库在"未出生 HEAD"状态下 git rev-parse --abbrev-ref HEAD 会失败,分支胶囊会退化成显示 detached;有首个提交才有正常分支名。不会把任何现有文件纳入提交,不会写 .gitignore,不碰远程。
  • 不会嵌套仓库:先探测 git rev-parse --is-inside-work-tree,已在某个工作树内(父目录已是仓库、或本身就是 git worktree 检出)就跳过。
  • 幂等:同一路径在一个 host 进程内只处理一次;已存在的仓库一律跳过。

配置

安装后由 profile 的 bundle patch(cordis.patch.yml)提供行配置,改完重启 dsh web 生效:

字段 默认 含义
enabled true 总开关,false 时插件什么都不装
branch main 初始分支名(git init -b,老版本 git 回退到 git symbolic-ref)
initialCommit true 是否补一个空提交(关闭则新仓库分支名可能显示为 detached)
sweepExisting true 是否也处理已注册的工作区;false 则只处理以后新注册的
timeoutMs 30000 每条 git 命令的超时

安装

从 GitHub 安装(推荐):

dsh plugin --profile web add github:zhitiaojun/dsh-auto-git

或在 DSH 插件市场 / 目录站 里搜 dsh-auto-git 点安装。

本仓库的包没有 prepare/构建脚本,github: 安装不需要往 profile 的 pnpm-workspace.yaml 的 allowBuilds 里加任何 key。

本地开发用 link: 指向 checkout:

dsh plugin --profile web add link:D:/Project/1/dsh-auto-git

link: 指向本地目录(用正斜杠),改代码后重启即生效,无需重装。两种方式都必须重启 dsh web 才会装进 host 进程。

验证

  1. 不进 DSH 也能验证核心行为:
node D:\Project\1\dsh-auto-git\test\smoke.mjs

它会用真实 git 在临时目录里跑:新建仓库、二次调用幂等、跳过已在工作树内的目录、自定义分支名、不建提交的模式、以及 apply() 的 boot 扫描 / domain/changed 钩子 / enabled:false / sweepExisting:false。

  1. 安装后:~/.dsh/profiles/web/.dsh-market/log.ndjson 应有该包的 install 与随后的 restart 记录。

  2. 运行时:host 日志里出现 auto-git: initialized:;或选一个新目录加入工作区,随后

git -C <新目录> log --oneline      # 应看到 chore: initial commit
  1. 端到端(可选):在空白会话里看分支胶囊是否出现(host 侧 SSE 每 30s 推送一次工作区状态,或切走窗口再切回来触发 focus 刷新)。

卸载

dsh plugin --profile web remove dsh-auto-git

卸载只移除插件,不会回滚已经建好的仓库。

安装前须知

sweepExisting 默认 true:装上并重启后,当前所有还不是仓库的已注册工作区都会被 git init(本机当时为 D:\Project\1、D:\Project、D:\Project\控制、D:\Project\我就要洗衣、D:\Project\race、D:\Project\race\before、D:\Project\race\nerv)。如果只想影响以后新建的工作区,把 cordis.patch.yml 里的 sweepExisting 改成 false。

实现要点

  • 纯 host 侧插件,无 dsh.client 声明 → 不向浏览器贡献任何代码。
  • 零运行时依赖:只用 node:child_process / node:fs/promises。
  • 包根声明 dsh.bundle.patch,profile 组合时把 auto-git-init 这一行插进插件树(与 git-graph 等社区 bundle 同机制)。
  • 用 ctx.inject(['workspaceRegistry'], scope => …) 拿服务、scope.effect(...) 管生命周期、scope.on('domain/changed', ...) 挂在工作区表的写入事件上。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-auto-git 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:zhitiaojun/dsh-auto-git` 即可。

dsh-auto-git 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-auto-git 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-auto-git 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-auto-git 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1。

dsh-auto-git 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-auto-git 有哪些功能?

新工作区自动 git init、默认补一个空提交、跳过嵌套仓库,幂等、可配置分支与扫描范围。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

开发与运行时
按星标排序,可作替代方案

rea

rea

L4 · 沙盒安装通过 2.6 万 星

dsh-TUI

dsh-TUI

Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。

L4 · 沙盒安装通过 4,292 星

mirage

mirage

把文件系统与 bash 提供者换成 mirage 虚拟工作区:文件工具与 shell 命令作用于挂载的资源(RAM、S3、Redis、Sla

L3 · 安装规范通过 3,681 星

dashi-taskboard

dashi-taskboard

把当前已安装并运行中的 Codex Taskboard 嵌入 DeepSeek Harness 侧边栏,并通过 Launcher 运行时描述

L4 · 沙盒安装通过 3,311 星

zhitiaojun 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。