dsh-zgit:無 git 二進制的 DSH Agent 代碼獲取方案

前言

在 DeepSeek Harness(DSH)的開發工作流中,Agent 常常需要獲取源代碼或二進制文件。通常的第一反應是使用 git clone,但這要求宿主環境安裝 git 二進制文件,且涉及大量的網絡傳輸。下面介紹 dsh-zgit 插件,它通過直接調用 Forge 的 HTTPS 接口來替代 git 操作,旨在提升 DSH Agent 的運行效率。

核心功能

dsh-zgit 專注於“讀”操作,提供了一套無需 git 二進制文件的獲取方案。

  1. 源代碼獲取
    插件直接通過 HTTPS 下載 Forge 的歸檔文件(如 tar.gz 或 zip),解壓至工作區的模擬檢出目錄(.zerogit)。該目錄模擬了 git checkout 的結構,支持查看和狀態檢查。

  2. 二進制發佈下載
    支持從 GitHub、GitLab、Gitee 的 Release 頁面下載二進制資產。下載過程包含 SHA256 校驗,確保文件完整性。

  3. Git 讀取命令模擬
    插件重新實現了 git 的部分讀取命令,包括:

    • zgit_ls_remote:獲取遠程分支和標籤。
    • zgit_show:獲取指定引用下的單個文件內容。
    • zgit_ls_tree:列出指定引用下的文件結構。
    • zgit_log:查看最近的提交記錄。
    • zgit_diff:對比兩個引用之間的差異。
    • zgit_status:檢查模擬檢出目錄與遠程的差異。
  4. 通用下載工具
    zgit_download 可以下載任何直接 URL(如鏡像站點或工具鏈),支持字節上限限制和 SHA256 校驗,防止濫用。

安裝與啓用

安裝過程需要在 DSH 的終端中執行。該插件託管在 npm 上,支持通過 profile 安裝。

dsh plugin --profile web add dsh-zgit

安裝完成後,插件會在 DSH 環境中註冊對應的命令和 /zgit 人類平面命令入口。

典型用法

插件支持多種倉庫引用格式,包括 owner/repo、owner/repo@ref、完整的 HTTPS URL 以及 SSH URL。

命令行工具示例:
* 克隆源代碼並切換到特定分支:

    zgit_clone owner/repo@ref
  • 獲取最新的二進制發佈:
    zgit_fetch_release
  • 查看當前模擬工作區的狀態:
    zgit_status
  • 下載任意 URL 的文件(限制 1GB,校驗 SHA256):
    zgit_download https://example.com/file.tar.gz

人類平面命令(Web UI / TUI):
直接輸入 /zgit 並選擇對應操作(clone, get, show, ls, log, diff, resolve, status, download),無需通過模型傳遞指令。

適用場景與注意

適用場景:
* DSH 運行環境未安裝 git 二進制文件。
* 需要嚴格限制 Agent 的下載流量和存儲空間。
* 需要 Agent 直接獲取二進制發佈資產進行校驗或部署。

注意事項:
* 只讀模式:插件不支持寫入、提交或推送操作,僅限代碼獲取。
* 安全性:
* 工作區寫入被限制在調用會話的工作區內,防止路徑逃逸。
* 所有下載均受字節上限限制。
* 下載的存檔文件僅被解壓,不會被執行。
* 許可證:該插件採用 MIT 許可證。

總結

dsh-zgit 提供了一種輕量級的替代方案,讓 DSH Agent 能夠在無 git 環境下高效獲取代碼和資源。通過模擬 git 的讀取操作,它在保持安全性的同時簡化了工作流。更多細節可參考插件目錄或源碼倉庫。

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

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

小夜