dsh-git-forge:DeepSeek Harness 代碼庫賬號與推送策略管理插件

前言

在 DeepSeek Harness (DSH) 的開發場景中,智能體需要頻繁訪問代碼庫進行操作。管理多個代碼託管平臺(GitHub、Gitea 等)的賬號、確保項目級別的訪問隔離以及控制推送行爲,是常見的安全與協作痛點。手動配置往往繁瑣且容易泄露敏感信息,而直接將憑據暴露給模型上下文又存在安全隱患。

dsh-git-forge 是一款社區插件,旨在爲 DSH 提供集中式的代碼庫賬號管理、基於項目路徑的授權機制以及細粒度的推送策略控制。

這是什麼

這是一款 DeepSeek Harness 社區插件,由 thirsty5034 維護。它集成在 dsh-better-sidebar (≥ 0.12) 中,解決了智能體在多賬號、多項目環境下的 Git 訪問與權限管理問題。

核心功能包括:
* 賬號庫:統一管理 GitHub / Gitea / GitLab / Gitee / Bitbucket 的賬號。
* 項目授權:將賬號授權與 DSH 會話工作區路徑綁定。
* 推送守衛:在主機 tools.guard 中攔截非授權的 git push 和 git remote 操作。

核心功能

賬號與授權

插件在 $DSH_HOME/git-forge/ 目錄下存儲數據:
* accounts.json:賬號元數據(不含令牌)。
* secrets.json:令牌(權限 0600)。
* grants.json:項目路徑與賬號 ID 的映射關係。

授權鍵(projectPathKey)默認爲工作區當前目錄(workspace cwd)。在 Agent Shell 環境中,授權鍵通過環境變量 DSH_GIT_FORGE_PROJECT 傳遞。

模型工具

模型可以通過調用 GitForge 工具執行只讀操作:
* action=list_accounts:列出所有已配置賬號。
* action=get_policy:獲取當前授權策略。
* action=list_project_accounts:列出當前項目的授權賬號。
* action=check_remote:檢查遠程倉庫地址是否在授權列表中(例如:url=git@github.com:org/repo.git)。

Agent HTTPS 與憑證

在 DSH Agent Shell 中,HTTPS Git 操作由插件的憑證助手處理:
* 安全隔離:令牌永遠不會進入模型上下文或工具/API 返回結果中。
* R1 限制:對於同一 Git 主機,最多僅填充一個授權的令牌賬號。
* 助手解析:憑證解析順序爲環境變量 -> 精確當前目錄 -> 向上遍歷 /workspace 父目錄。

推送策略

  • 守衛機制:推送策略在 Host tools.guard 中強制執行,攔截 bash git push 和 git remote add|set-url 指向未授權主機的操作。
  • 漸進式啓用:如果沒有爲特定項目配置授權,默認不會阻止推送(漸進式啓用);此時憑證助手也不會提供憑據。

安裝與啓用

安裝前請確保已安裝 Node.js 18+,並且 DSH Web 配置文件中集成了 dsh-better-sidebar (版本 ≥ 0.12)。

在 macOS 或 Linux 系統上執行以下命令安裝:

curl -fsSL https://raw.githubusercontent.com/thirsty5034/dsh-git-forge/main/scripts/install.sh | bash

安裝完成後,重啓 DSH Web 服務,並在瀏覽器中執行硬刷新(Cmd/Ctrl + Shift + R)以加載插件。

適用場景與注意

  • 適用場景:需要爲智能體分配受限的 Git 訪問權限、多團隊協作環境下的賬號隔離、以及對代碼推送行爲有安全審計要求的場景。
  • SSH 與系統工具:SSH 遠程連接和系統級的 gh auth 依然使用本地的 SSH 配置或 GitHub CLI,不受此插件影響。僅在 DSH Agent Shell 中,HTTPS 請求才會由插件的憑證助手填充授權憑據。
  • 安全提示:插件通過 Host tools.guard 強制執行策略,令牌文件權限嚴格設置爲 0600,確保只有運行 DSH 的用戶可讀。

總結

dsh-git-forge 提供了一套從賬號管理到項目授權、再到推送策略控制的完整解決方案。它將敏感信息隔離在模型上下文之外,並通過細粒度的策略限制智能體的 Git 操作範圍,適合需要嚴謹權限管理的 DSH 生態構建。

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

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

小夜