dsh-git-forge:DeepSeek Harness 的 Git 憑據與推送權限管理器

前言

DeepSeek Harness 的設計理念是“一切皆插件”。當 agent 需要操作 Git 時,如何安全地管理憑據並控制推送權限是常見需求。dsh-git-forge 插件解決了這個問題,它提供了賬號庫、按項目授權和推送策略管理功能。

該插件專注於 DSH agent shell 下的 HTTPS Git 操作。它不涉及 SSH 遠程或系統 gh auth,而是通過自動注入憑據和硬攔截機制,確保只有被授權的賬號和 host 可以進行推送。

核心能力

插件包含以下主要功能:

  • 賬號庫:按 gitHost 歸集,支持探測 API token。
  • 按項目授權:以 DSH 會話工作區爲 key(projectPathKey),決定 agent 使用哪個賬號。
  • push 攔截:在 Host tools.guard 中硬攔截,拒絕未授權的推送。
  • agent HTTPS git:helper 自動注入憑據,確保 agent 可以執行 fetch 和 push。
  • token 落盤:僅存於宿主側 secrets.json,不進入模型上下文。
  • 模型工具:提供只讀動作(list_accounts, list_project_accounts, get_policy, check_remote)。
  • UI 對齊:與 dsh-ssh-tunnel 共用側欄交互。

安裝與啓用

使用官方安裝命令添加插件:

dsh plugin --profile <profile> add "dsh-git-forge"

安裝完成後,需要刷新瀏覽器頁面才能在右側欄看到「Git 憑據」入口。

使用流程

  1. 打開右側欄「Git 憑據」→ 賬號庫 加一個賬號(輸入 token 並探測)。
  2. 切到 項目授權 → 勾上該賬號並保存,當前工作區即獲得授權。
  3. 讓 agent 在項目裏運行 HTTPS 的 git fetch / git push,憑據由 helper 自動注入。
  4. 嘗試推送到未授權的 host,攔截器應直接拒絕該操作。

模型工具

插件提供了四個只讀工具動作:

動作 作用 參數
GitForge action=list_accounts 列出賬號庫(不含 token) 無
GitForge action=list_project_accounts 列出某項目已授權的賬號 project_path
GitForge action=get_policy 查看該項目策略(賬號、enforcePush、默認策略) project_path
GitForge action=check_remote 校驗某個 remote URL 是否被允許推送 url(必填)

數據與安全

  • 數據存儲:所有數據位於 $DSH_HOME/git-forge/ 目錄下,包括賬號元數據、token 和授權策略。
  • 安全機制:
    • token 不會出現在 API 結果、工具結果或模型上下文中。
    • push 策略在 Host tools.guard 中硬攔截,不依賴模型自覺。
    • 未給項目配置授權時,push 攔截器默認不攔截。
    • 側欄 API 做同源校驗(Sec-Fetch-Site 或 Origin 與 Host 一致性檢查)。
    • 已知 push 檢測基於命令文本啓發式,存在繞過面(如 env 變量改名 git、git alias、包裝器等)。

環境要求

  • DSH 版本:>=0.2.0-rc.2 <0.3.0-0
  • Node.js 版本:>= 20

結語

dsh-git-forge 是一個專注於 Git 憑據與權限控制的實用工具,適合需要精細化管理 agent Git 操作的場景。其 MIT 許可證允許自由使用與修改。更多細節請查看 GitHub 倉庫。

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

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

小夜