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 生态构建。

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

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

小夜