前言¶
在 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、幻方沒有官方從屬關係。