dsh-github-link:在 DSH 中關聯 GitHub 併爲 Agent 提供受控 github 工具

前言

在 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):

  1. 設置 → GitHub 賬號 頁面可見。
  2. 若本機 gh 已登錄,「一鍵關聯」後應顯示 GitHub 用戶名和 scope。
  3. 在對話中讓 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 的設備流):

  1. GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
  2. 勾選 Enable Device Flow
  3. 將 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 管線。

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

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

小夜