前言¶
在 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_sha 和 html_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 地址、用户名、默认仓库/分支、代理、凭据名、默认提交信息。
各字段默认值如下:
apiBase:https://api.github.comcredential:GITHUB_TOKENdefaultBranch:maindefaultCommitMessage:"chore: update via DSH"username、defaultRepo、proxy:默认为空
典型用法¶
经过上面的步骤,就可以在对话里直接使用了:
用 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_api 的 path 不带前导斜杠,例如 repos/octocat/Hello-World 或 user/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、幻方没有官方从属关系。