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_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.com
  • credential:GITHUB_TOKEN
  • defaultBranch:main
  • defaultCommitMessage:"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、幻方沒有官方從屬關係。

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

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

小夜