dsh-tool-github:DeepSeek Harness 的 GitHub 工具與側邊欄面板

前言

DeepSeek Harness (DSH) 智能體在處理代碼、提交 PR 或管理倉庫時,通常需要與 GitHub 交互。本插件爲 DSH 提供了原生的 GitHub REST API 工具,並配套瀏覽器側邊欄面板,解決了智能體直接調用 API 的繁瑣問題,支持賬號綁定、倉庫搜索、Issue/PR 管理,以及將倉庫克隆爲本地工作區。

核心能力

該插件包含兩類核心功能:面向模型(Agent)的命令行工具和麪向用戶的瀏覽器側邊欄面板。

賬戶綁定工具

用於在 DSH 中建立與 GitHub 的認證連接。
* github_bind:驗證 GitHub 個人訪問令牌,並將其持久化存儲到憑證庫。
* github_whoami:查詢當前綁定的 GitHub 賬號信息及 Token 來源。
* github_unbind:解除賬號綁定,移除存儲的 Token。

GitHub API 工具

註冊了一系列 github_* 工具,供智能體直接調用。
* 查詢類:github_repo(獲取倉庫元數據,如 stars、語言)、github_search(搜索倉庫、代碼或 Issue)、github_my_repos(列出當前賬號倉庫)、github_issues(列出 Issue)、github_prs(列出 Pull Request)。
* 操作類:github_create_issue、github_create_pr、github_content(讀取文件或目錄)、github_comment(對 Issue 或 PR 發表評論)。

工作區集成工具

將 GitHub 倉庫轉化爲 DSH 的本地工作區。
* github_workspace_add:克隆倉庫到本地並註冊爲工作區。
* github_workspace_list:列出已註冊的 GitHub 工作區及其本地路徑。

瀏覽器側邊欄面板

在 dsh web 界面的側邊欄添加 GitHub 圖標。
* 狀態顯示:顯示綁定的賬號及註冊的工作區列表。
* 倉庫管理:點擊列表中的倉庫可將其克隆並註冊爲工作區。
* 操作入口:提供“綁定賬號”、“添加工作區”和“刷新”按鈕。

安裝與啓用

在插件目錄下執行以下命令安裝:

dsh plugin --profile web add .

安裝或更新後,必須重啓 Web GUI (dsh web) 以加載新的插件包。客戶端插件發現機制僅在進程啓動時運行,緩存了“非客戶端包”的判定結果,因此運行中的 GUI 無法自動識別新安裝的插件。

配置

插件支持通過配置文件或環境變量設置參數。配置項的 Token 解析優先級爲:憑證庫 (credential store) > 插件配置 (plugin config) > 環境變量。

在 ~/.dsh/cordis.patch.yml 或對應 Profile 目錄下配置:

- id: tool-github
  config:
    token: ""  # 可選,推薦使用 github_bind 或 GITHUB_TOKEN 環境變量
    baseUrl: "https://api.github.com"
    timeoutMs: 30000
    maxResults: 10
    workspaceRoot: "~/.dsh/github-workspaces"

典型用法

在 DSH 的對話中直接調用上述工具:

# 綁定賬號
github_bind <your_token>

# 查詢當前賬號
github_whoami

# 添加 DeepSeek-Harness 倉庫爲工作區
github_workspace_add deepseek-ai DeepSeek-Harness

# 查看可用的 GitHub 工作區
github_workspace_list

# 獲取倉庫的 star 數
github_repo deepseek-ai DeepSeek-Harness

# 搜索 stars 超過 3000 的 Python PDF 庫
github_search python stars:>3000 pdf

工作原理

賬戶綁定機制

github_bind 首先通過調用 GET /user 驗證 Token 的有效性。驗證通過後,通過 DSH 的憑證接口 (ctx.credentials) 將 Token 存儲在 GITHUB_TOKEN 鍵下,數據持久化在 $DSH_HOME/.credentials.yaml 中。後續工具調用時會自動讀取該憑證,無需重複輸入。

工作區集成機制

github_workspace_add 接收 owner/repo 參數。它首先嚐試使用 git clone 克隆倉庫到 workspaceRoot 目錄,若遇到 git TLS 不可用的情況,則回退使用 GitHub CodeLoad tarball 下載。克隆完成後,調用 ctx.workspaceRegistry.create 將倉庫註冊到工作區註冊表,使其出現在工作區選擇器中,智能體即可在此目錄下使用文件操作工具。

注意事項

  1. 環境要求:插件依賴 Node.js >= 20。
  2. 重啓生效:修改配置或安裝插件後,務必重啓 dsh web 進程。
  3. TLS 回退:在特定網絡環境下(如某些受限網絡),插件會自動從 git clone 切換到 codeload 下載方式。
  4. 權限範圍:Token 的權限範圍決定了智能體能訪問的倉庫(包括私有倉庫)和執行的操作(如讀寫文件、創建 PR)。

生態背景

DeepSeek Harness (DSH) 採用“一切皆插件”的架構。本插件爲社區貢獻的獨立工具,旨在增強 DSH 與 GitHub 生態的集成能力。插件目錄與 DeepSeek 官方無從屬關係。

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

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

小夜