dsh-git-connector

DSH PLUGIN开发与运行时

仓库 Sycada/dsh-git-connector

开发与运行时 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

DeepSeek Harness(DSH)的 Git 仓库连接插件:保存 Gitea / Forgejo / GitHub 托管与仓库档案,

一句话选型结论

按资料字段整理

dsh-git-connector 是开发与运行时类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类开发与运行时 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 未标注 复刻 未标注 · 未关闭 issue 未标注
最近更新 未标注 创建于 未标注
README 8.0 KB 正文体量,越大说明说明书写得越细

安装

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

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

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

  3. 3
    确认已挂载

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

  4. 4
    试跑并检查权限

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

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

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

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

值得选的地方

  • 基础信息齐全,可以先按仓库说明试装。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

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

不太适合

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

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-git-connector当前 未做沙盒验证 未标注 未标注 未标注 无
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 有

仓库档案

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

README 全文

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

dsh-git-connector

> DeepSeek Harness(DSH)的 Git 仓库连接插件:保存 Gitea / Forgejo / GitHub 托管与仓库档案,
> 让 agent 用档案名连接仓库、完成常规仓库操作,并把忽略证书、允许覆盖这类危险开关
> 按仓库单独授权。

密钥保存在 DSH 凭据中心(~/.dsh/.credentials.yaml),插件数据里只保存引用名 —— 不落明文。

与社区插件的关系

本插件聚焦 Git 传输 + Forge API,面向 Gitea / Forgejo / 自建实例,同时支持 GitHub。
社区的 dsh-github-connector 聚焦 GitHub 的 PR 审查与合并流程。两者功能互补,可以共存。

前置条件

项 要求
Node >= 20
DSH >= 0.1.1-rc.1
git 一个可用的 git 可执行文件(见下)

本插件通过调用 git 命令行完成所有传输(clone / fetch / pull / push),而不是内置一个 git 库 ——
所以宿主机上必须能找到 git。

安装 git

Windows

winget install --id Git.Git -e

也可以从 下载安装包。

macOS

brew install git
# 或者:xcode-select --install

Linux

sudo apt install git      # Debian / Ubuntu
sudo dnf install git      # Fedora / RHEL
sudo pacman -S git        # Arch

验证

git --version

如果 git 不在 PATH 上

两种方式指定,任选其一:

  1. 配置页(推荐,随时可改):设置 → Plugins → Git Connector → Git 可执行文件路径
  2. profile 配置:cordis.patch.yml 里的 gitPath
gitPath: "C:\\Program Files\\Git\\cmd\\git.exe"   # Windows 示例
# gitPath: "/usr/local/bin/git"                        # macOS / Linux 示例

解析顺序:配置页 > profile 配置 > 自动探测(先查 PATH,再查各平台常见安装位置)。
配置页留空即回到自动探测。

安装

在 DSH profile 的 package.json 中加入依赖并登记 bundle:

"dependencies": {
"dsh-git-connector": "https://github.com/Sycada/dsh-git-connector.git#main"
},
"dsh": {
"profile": {
"bundles": [ ..., "dsh-git-connector" ]
}
}

插件没有运行时依赖:git 以子进程调用,HTTP 使用 Node 内置的 node:https。

快速开始

1. 添加托管

@ git_provider_add { name: "my-gitea", kind: "gitea", baseUrl: "https://git.example.com", username: "alice" }@

密钥引用名会按约定自动推导为 DSH_GIT_CONNECTOR_MY_GITEA_TOKEN。

2. 保存密钥

打开 设置 → Plugins → Git Connector,在托管那一行粘贴 token,点击保存密钥。
也可以直接写入 ~/.dsh/.credentials.yaml,或使用同名环境变量。

验证:

@ git_provider_test { provider: "my-gitea" }@

3. 添加仓库档案

@ git_repo_add { name: "my-project", providerRef: "my-gitea", owner: "alice", repo: "my-project" }@

远程地址由 gitBaseUrl + owner/repo 自行推导。

4. 用档案名操作

@ git_clone { repo: "my-project" } git_status { repo: "my-project" } git_commit { repo: "my-project", message: "feat: ..." } git_push { repo: "my-project" }@

后续所有操作只需要档案名 —— agent 不必知道 URL、凭据或本地路径。

Agent 工具

分组 工具
托管 git_provider_list git_provider_add git_provider_update git_provider_remove git_provider_test
仓库档案 git_repo_list git_repo_add git_repo_update git_repo_remove
Git 操作 git_clone git_fetch git_pull git_push git_status git_branch git_diff git_log git_commit
Tag git_tag git_tag_verify forge_tag_list forge_tag_create
Forge API forge_repo_list forge_repo_create forge_repo_info forge_branch_list forge_branch_create forge_branch_delete forge_contents forge_pull_list forge_pull_create forge_issue_create
凭据 git_credential_status

档案管理与执行动作严格分开:git_repo_* 只维护档案,git_* 才作用于仓库。

发布 tag 的推荐路径

推 refs/tags/... 走 git 传输在部分 Gitea 实例上会认证失败,因此优先用 forge API 建 tag:

forge_tag_create { repo: "my-project", tag: "v0.2.0", target: "main", message: "..." }
git_tag_verify   { repo: "my-project", name: "v0.2.0" }   # 确认真到了远端

Gitea/Forgejo 上加 release: true 可顺带建 Release;GitHub 的 tag 分两步(先建 tag 对象再建 ref),
这个差异由适配器吸收,调用方用同一套参数即可。tag 不受 force-push 四道闸门约束(tag 是发布标记,
不是会丢提交的分支),但仍受 readOnly 约束。

按仓库的独立开关

生效值 = repo.flags[key] → provider 字段 → 全局配置 → 内置默认。

开关 默认 作用
insecureTls 继承 provider / 全局(false) 忽略证书校验(自签名实例的逃生门;能用 caFile 就不要用它)
caFile 继承 provider 用 PEM 证书校验(比 insecureTls 安全)
overwriteLocal false(仓库独有) 允许破坏本地工作副本:clone 进非空目录(先备份目录)、pull 丢弃改动(先 stash)、删除未合并分支(记录 SHA)
overwriteRemote false(仓库独有) 允许改写远端历史(force push)
allowForcePush 继承全局(默认 false) force push 的第一道闸
allowForceDefaultBranch false(仓库独有) 允许 force push 默认分支
allowOutsideWorkspace 继承全局(默认 false) 允许 localPath 越出工作区根目录
readOnly false(仓库独有) 一键只读:拒绝所有写操作
fetchPrune true fetch 时附带 --prune
commitIdentity 继承全局 instanceLabel 提交署名标签

「覆盖」类操作的约定

打开 overwriteLocal 后,每个破坏性操作都会返回可回滚的凭据(备份目录路径、stash@{0}、
被删分支的 SHA、远端原 SHA),不存在「开了开关就静默丢数据」的路径。

force push 需要四道闸同时打开:

@ global.allowForcePush ∧ repo.flags.allowForcePush ∧ repo.flags.overwriteRemote ∧ 调用传 confirmForce: true (且目标分支 ≠ 默认分支,除非再开 allowForceDefaultBranch)@

安全设计

项 做法
密钥存储 只保存引用名;值存放于 DSH 凭据中心
密钥注入 git 每次操作生成临时 GIT_ASKPASS 助手,值通过环境变量传递 —— 不进命令行参数、不进 URL、不落盘;用完即删,异常残留会在启动时清扫
子进程纪律 只使用 spawn(git, argv[]),不拼接 shell 字符串
凭据助手 每次调用重置 credential.helper,系统凭据管理器不会接触或缓存插件使用的 token
TLS 默认校验证书;insecureTls 只对当次请求构造 agent,不修改进程级 TLS 状态
SSRF allowRawUrl 默认关闭:没有托管就不能连接任意 URL
路径围栏 localPath 必须落在 workspaceRoot 内,除非该档案显式开启 allowOutsideWorkspace
浏览器围栏 设置页接口仅回环地址(或 trustedHosts)可访问
提交署名 插件产生的提交署名为 dsh-git-connector[],与用户及其他 agent 的提交可区分

配置

gitPath: ""                  # 自定义 git 可执行文件;留空则自动探测
gitTimeoutMs: 300000         # 单条 git 命令超时
gitOutputLimit: 1048576      # stdout/stderr 截断上限(字节)
workspaceRoot: ""            # 本地工作副本根目录;留空则用 ~/.dsh/dsh-git-connector/workspaces
allowOutsideWorkspace: false
allowForcePush: false
allowRawUrl: false
allowInsecure: false
httpTimeoutMs: 30000
maxOutputLines: 2000
promptSectionOrder: 570
instanceLabel: ""            # 提交署名标签,例如 "desktop-1"
trustedHosts: []

许可

MIT

常见问题

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

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

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

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-git-connector 安全吗?

未标注。

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

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

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

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 星

Sycada 的其它插件

1 个

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