前言¶
DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。在開發智能體或進行代碼調試時,頻繁在本地終端、瀏覽器和 DSH 界面之間切換會打斷心流。dsh-git 插件通過在 DSH 的官方右側欄提供本地 Git 操作與 GitHub 遠端頁籤,減少了窗口切換的開銷,讓 Git 工作流可以直接在 DSH 環境中完成。
核心功能¶
該插件通過一個 npm 包實現了瀏覽器端 UI 和 Host 端邏輯的結合,提供以下能力:
- 本地 Git 工作臺:提供“Changes”和“History”頁籤。在“Changes”中可查看文件 diff、暫存修改,並通過 DSH 配置的模型生成提交信息;在“History”中查看提交歷史和具體變更。
- 多倉庫管理:支持顯式添加的本地倉庫列表,登錄 GitHub 後可列出有權限的遠端倉庫。
- 遠端 GitHub 頁籤:集成 Code(文件樹)、Issues、Pull Requests 和 Actions 頁籤。當倉庫沒有遠端時,Code 頁籤會退化爲本地工作區視圖,而 Issues/PR/Actions 頁籤會顯示說明而非報錯。
- 智能提交生成:利用 DSH 的
ctx.llm接口,根據暫存的 diff 自動生成符合規範的提交信息。 - 安全與架構:本地操作通過 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) 權限。
典型用法¶
- 添加倉庫:在右側欄插件界面中添加需要管理的本地倉庫路徑。
- 登錄 GitHub:點擊“登錄 GitHub.com”,選擇設備碼或填入 PAT。
- 暫存與提交:在“Changes”頁籤勾選文件,點擊“✨ 生成”讓模型編寫摘要,點擊“提交”。
- 查看歷史:在“History”頁籤查看提交記錄,支持查看 diff 和 cherry-pick 等操作。
- 管理遠端:在“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 倉庫。