DSH GitHub Tool:让 DeepSeek Harness 直连 GitHub

前言

在 DeepSeek Harness(DSH)里和 GitHub 打交道,常见做法是让 Agent 绕道终端:敲 curl、拼 token、解析 JSON,分页和错误码都要自己处理,一次多文件提交还得拆成好几步。DSH GitHub Tool 把这套流程收进插件,对话里就能完成 REST / GraphQL 调用、一键提交文件、发 Discussion。

下面按功能、安装、配置、用法的顺序介绍这个插件。

这是什么

DSH GitHub Tool 是由 H-table 维护的 DSH Web 插件,以 MIT License 开源,当前版本为 1.0.0。它解决的问题很具体:让 DSH 直连 GitHub,读仓库、写文件、查 GraphQL、发讨论帖都在对话里完成;Token 走凭据系统加密存储,网络受限时可以配一个 HTTP 代理。

核心功能

四个模型工具

插件提供 4 个模型工具,每个会话自动注册,无需额外 Skill:

  • github_api:通用 GitHub REST 调用;
  • github_push_files:多文件单次提交;
  • github_graphql:通用 GraphQL 调用;
  • github_create_discussion:发 Discussion 帖。

凭据加密存储

GitHub Token 通过 DSH 凭据系统(ctx.credentials)加密存储,永不落设置文件;配置卡只显示「已配置密钥 / 未配置密钥」,不会把密钥带回浏览器。Token 在凭据系统中的默认引用名为 GITHUB_TOKEN

多文件单次提交与二进制上传

github_push_files 走 git data API(blob → tree → commit → ref)一次提交多个文件,返回 commit_shahtml_url;目标分支不存在时自动回退到仓库默认分支。

上传是二进制安全的:files[].localPath 直接读取本地文件(如 PNG),以 base64 写入 git data API,不走文本编码。

可选 HTTP 代理

受限网络环境下,配置一个 HTTP(S) 代理(CONNECT 隧道)即可直连 GitHub,一个字段搞定,不需要改系统环境。

安装与启用

安装采用本机 profile link + 符号链接的方式,分三步。

1、在 ~/.dsh/profiles/web/package.json 中加入:

"dependencies": { "@local/dsh-github-tool": "link:<本仓库目录>" },
"dsh": { "profile": { "bundles": ["@local/dsh-github-tool"] } }

2、建立 node_modules/@local/dsh-github-tool → 本仓库目录 的符号链接。

3、重启 Web Profile。

插件的 peerDependencies 为 @deepseek-ai/dsh-tools@deepseek-ai/dsh-settings@deepseek-ai/dsh-credentials^0.1.0-rc.6),以及 @deepseek-ai/schemastery^3.18.1)、@deepseek-ai/cordis^4.0.1),安装前确认环境满足。

配置 Token 与配置项

先准备凭据:在 GitHub 上新建一个 Personal Access Token,勾选 repo 权限;如果要发 Discussion,另需 read:discussion / write:discussion 或相应 scope。

再到插件侧:进入 设置 → 插件 → 插件配置 →「GitHub 接入」,在 Token 输入框粘贴并保存,卡片显示「已配置密钥」即生效。这张卡片与官方插件同款,支持暂存编辑、已覆盖标记、恢复默认,可填字段包括 API 地址、用户名、默认仓库/分支、代理、凭据名、默认提交信息。

各字段默认值如下:

  • apiBasehttps://api.github.com
  • credentialGITHUB_TOKEN
  • defaultBranchmain
  • defaultCommitMessage"chore: update via DSH"
  • usernamedefaultRepoproxy:默认为空

典型用法

经过上面的步骤,就可以在对话里直接使用了:

用 github_api 看看 H-table/dsh-github-tool 最近 5 个提交。
把 README.md 和 assets/hero.svg 提交到我的默认仓库,提交信息 "docs: 更新 README"。
把本地 C:/Users/me/logo.png 上传到 H-table/dsh-bg-tool 的 assets 目录。
在 H-table/dsh-github-tool 发一个 Discussion,标题 "想法征集",正文 "欢迎分享使用建议"。

一个细节:github_apipath 不带前导斜杠,例如 repos/octocat/Hello-Worlduser/repos?per_page=5

适用场景与注意

适合需要在 DSH 对话中直接读写 GitHub 的用户:查仓库状态、把项目文件更新上去、上传本地图片、给仓库发讨论帖。受限网络环境下,代理字段能省去改系统代理的麻烦。

使用前有几点注意:

1、Token 权限:基础使用勾选 repo;发 Discussion 另需 read:discussion / write:discussion 或相应 scope。
2、限流:GitHub 未认证请求限 60 次/小时,确认 token 已生效,或控制调用频率。
3、超时:代理连接超时默认 60s(github_push_files 为 120s),网络慢可通过 timeoutMs 逐调用覆盖。
4、安全:插件以当前 dsh 进程的权限运行,安装前请先检查源码与许可证(本项目为 MIT)。

另外,同作者还有配套项目 dsh-bg-tool(本地 GPU 抠图)和 dsh-vision-toolkit(视觉工具集),可以搭配使用。

结尾

DSH GitHub Tool 把 GitHub 的读、写、查、发收成 4 个对话内可用的工具,凭据加密存储、代理开箱即配,省去了在终端里手工拼接请求的环节。如果你在 DSH 里经常和 GitHub 打交道,可以试试。

  • 社区目录页:https://www.skillhub.cn/plugins/H-table/dsh-github-tool
  • GitHub 仓库:https://github.com/H-table/dsh-github-tool

需要说明的是,上述目录是社区维护的独立站点,与 DeepSeek、幻方没有官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜