dsh-git:將本地 Git 工作臺與 GitHub 頁籤集成到 DeepSeek Harness 右側欄

前言

DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。在開發智能體或進行代碼調試時,頻繁在本地終端、瀏覽器和 DSH 界面之間切換會打斷心流。dsh-git 插件通過在 DSH 的官方右側欄提供本地 Git 操作與 GitHub 遠端頁籤,減少了窗口切換的開銷,讓 Git 工作流可以直接在 DSH 環境中完成。

核心功能

該插件通過一個 npm 包實現了瀏覽器端 UI 和 Host 端邏輯的結合,提供以下能力:

  1. 本地 Git 工作臺:提供“Changes”和“History”頁籤。在“Changes”中可查看文件 diff、暫存修改,並通過 DSH 配置的模型生成提交信息;在“History”中查看提交歷史和具體變更。
  2. 多倉庫管理:支持顯式添加的本地倉庫列表,登錄 GitHub 後可列出有權限的遠端倉庫。
  3. 遠端 GitHub 頁籤:集成 Code(文件樹)、Issues、Pull Requests 和 Actions 頁籤。當倉庫沒有遠端時,Code 頁籤會退化爲本地工作區視圖,而 Issues/PR/Actions 頁籤會顯示說明而非報錯。
  4. 智能提交生成:利用 DSH 的 ctx.llm 接口,根據暫存的 diff 自動生成符合規範的提交信息。
  5. 安全與架構:本地操作通過 loopback 路由訪問 Host;令牌僅存儲在 Host 側,瀏覽器界面僅顯示令牌尾 4 位;強推操作僅允許 --force-with-lease。

安裝與啓用

使用 DSH 的插件管理器安裝該插件。

dsh plugin --profile <profile> add @linxueyuan/dsh-git

安裝完成後,必須重啓 DSH 並在瀏覽器中進行硬刷新,因爲 Host 端的模塊不會隨頁面刷新自動重新加載。

登錄與權限配置

插件支持兩種登錄 GitHub 的方式:

  • 設備碼:通過內置的 GitHub App 登錄,開箱即用。但需確保 GitHub App 已安裝到你的賬號或組織,否則登錄成功但無法看到倉庫。該方式生成的令牌 8 小時後過期,插件會自動續期。
  • Personal Access Token (PAT):手動填入 PAT。Classic Token 需擁有 repo 權限,細粒度 Token 需包含 Contents (R)、Issues (RW)、Pull requests (RW) 和 Actions (RW) 權限。

典型用法

  1. 添加倉庫:在右側欄插件界面中添加需要管理的本地倉庫路徑。
  2. 登錄 GitHub:點擊“登錄 GitHub.com”,選擇設備碼或填入 PAT。
  3. 暫存與提交:在“Changes”頁籤勾選文件,點擊“✨ 生成”讓模型編寫摘要,點擊“提交”。
  4. 查看歷史:在“History”頁籤查看提交記錄,支持查看 diff 和 cherry-pick 等操作。
  5. 管理遠端:在“Code”、“Issues”、“PR”或“Actions”頁籤進行文件瀏覽、Issue 管理或 Workflow 運行控制。

注意事項

  • 令牌安全:令牌僅存在於 Host 側,瀏覽器不可見完整內容。文件以明文形式存儲,權限爲 0600。
  • 強制推送限制:爲了防止誤操作,插件強制要求使用 --force-with-lease 進行強制推送,不支持裸 --force。
  • Code 樹視圖:本地未推送的提交在“Code”頁籤的文件樹中不會顯示,該視圖以 GitHub 遠端爲準。
  • 環境要求:需要 Node.js 環境滿足 ^22.19.0 || >=24.0.0。

結語

dsh-git 通過將 Git 工作流和 GitHub 頁簽下沉到 DSH 右側欄,結合 LLM 輔助生成提交信息,爲開發者提供了一個集成度較高的代碼管理入口。更多細節與源碼,可參考其 GitHub 倉庫。

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

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

小夜