前言¶
在 DeepSeek Harness(DSH)裏讓 Agent 查倉庫、看 Issue、開 Issue,通常需要自行拼 GitHub API、管 token、還要考慮和當前 DeepSeek 賬號怎麼對應。社區插件 dsh-github-link(維護者 qichuang321,分類:聯網工具)做的是兩件事:把當前 DeepSeek 賬號與本機 GitHub 身份綁定,並註冊名爲 github 的 Agent 工具,限定在讀取倉庫與 Issue 相關操作上。綁定記錄走 DSH 本機 credentials 服務,按 DeepSeek 賬號 ID 隔離;不會改 DeepSeek 官方資料,也不會把 token 交給瀏覽器。Agent 不能推送代碼。
下面介紹插件定位、能力邊界、安裝與三種關聯方式,以及 github 工具的用法與注意點。事實以 GitHub 倉庫 README 爲準;社區目錄頁:https://www.skillhub.cn/plugins/qichuang321/dsh-github-link。
這是什麼¶
dsh-github-link 是純 JavaScript 的 DSH Web 側插件(版本 1.0.0,MIT 許可證),Host 入口爲 index.js,在設置裏提供 GitHub 賬號 頁面。安裝後重啓或刷新 DSH Web UI,在 設置 → GitHub 賬號 完成關聯即可。
插件以當前 dsh 進程權限運行;安裝前建議自行查看倉庫源碼與許可證。SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
賬號關聯與隔離¶
- 綁定保存在本機 DSH
credentials,按當前 DeepSeek 賬號 ID 隔離。 - 三種關聯方式見下一節;
gh-cli方式不復制 token,每次通過gh auth token讀取本機 CLI 登錄,撤銷或輪換 CLI 登錄即可失效。
Agent 工具 github¶
| action | 作用 |
|---|---|
status |
查看 DeepSeek / GitHub 關聯狀態,不需要已關聯。 |
list_repos |
列出當前 GitHub 賬號可見的倉庫。 |
list_issues |
讀取 owner/name 的 Issue / PR。 |
create_issue |
創建 Issue,需要 title。 |
comment_issue |
評論 Issue / PR,需要 number 和 body。 |
配置項 allowMutations 默認爲 true,控制是否允許 Agent 創建 Issue / 評論。
明確不做的事¶
- 不修改 DeepSeek 官方賬號資料,不把 GitHub token 發給瀏覽器。
- Agent 只能調用插件暴露的倉庫與 Issue 操作,不能推送代碼。
安裝與啓用¶
在已安裝 DSH CLI 的本機執行(--profile web 面向 Web UI):
dsh plugin --profile web add github:qichuang321/dsh-github-link
安裝後重啓或刷新 DSH Web UI,打開 設置 → GitHub 賬號。倉庫無需構建步驟。
驗證步驟(來自 README):
- 設置 → GitHub 賬號 頁面可見。
- 若本機
gh已登錄,「一鍵關聯」後應顯示 GitHub 用戶名和 scope。 - 在對話中讓 Agent 調用
github工具執行status或list_repos。
三種關聯方式¶
1. 本機 GitHub CLI(推薦)¶
插件檢測 gh auth status。若本機已執行過 gh auth login,在設置頁點擊「一鍵關聯」即可,無需 OAuth App,也不把 token 存進 DSH。
配置項 autoLinkGhCli:代碼默認 false;README 說明本機示例配置爲 true——啓動時若尚未綁定且 CLI 已登錄,可自動完成關聯。改爲 false 可關閉;設置頁「解除關聯」會寫入 opt-out,直到手動關聯前不再自動關聯。
2. Personal Access Token¶
在 GitHub 創建 token(README 推薦 fine-grained,只授權需要的倉庫),粘貼到設置頁。Token 寫入 DSH credentials,不寫入 localStorage。
3. OAuth App 設備授權¶
適合不想用本機 CLI 的場景(無 Client Secret 的設備流):
- GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
- 勾選 Enable Device Flow
- 將 Client ID 寫入插件配置,例如:
- id: github-account-link
name: 'dsh-github-link'
config:
clientId: 'Iv1.xxxxxxxxxxxx'
scopes: 'read:user public_repo'
clientId 爲空時,設置頁設備授權按鈕不可用。scopes 默認 read:user public_repo;CLI 方式沿用 gh 已有 scope。
配置字段¶
| 字段 | 默認值 | 說明 |
|---|---|---|
clientId |
空 | OAuth App Client ID;爲空時設備授權不可用。 |
scopes |
read:user public_repo |
設備授權請求的 scope。 |
allowMutations |
true |
是否允許 Agent 創建 Issue / 評論。 |
autoLinkGhCli |
代碼默認 false |
啓動時若已登錄 CLI 且沒有綁定,是否自動關聯。 |
典型用法¶
在對話中用自然語言驅動 Agent 調用 github 工具,README 示例:
列出我的 GitHub 倉庫
查看 qichuang321/dsh-plugin-browser 的 open issues
在 owner/repo 創建一個 issue,標題是“...”,正文是“...”
也可直接要求執行 status 或 list_repos 做連通性檢查。
適用場景與排查¶
適合:已在 DSH Web 中使用 Agent,需要只讀或輕量 Issue 協作(列倉庫、看 Issue、開 Issue、評論),且希望憑據與 DeepSeek 賬號一一對應、儘量複用本機 gh 登錄的場景。
注意:
- 解除關聯會刪除 DSH 內記錄並停止自動關聯,不會退出 GitHub CLI,也不會自動吊銷 GitHub 上的 token。
- CLI 切換賬號後,舊綁定可能顯示不可用,需重新關聯。
- 401:token 失效,重新關聯。
- 403 / rate limit:按 GitHub API 速率限制後重試。
- 設置頁 404:確認插件已安裝且 DSH Web 已重新加載。
結尾¶
dsh-github-link 把 DeepSeek 賬號與 GitHub 綁定收攏到 DSH 設置與 credentials,並通過受控 github 工具暴露倉庫與 Issue 能力,適合在 Harness 生態裏做聯網協作而不自行維護 token 管線。