在 DeepSeek Harness (DSH) 的开发场景中,代理需要频繁与 Git 仓库交互。传统的命令行工具缺乏可视化反馈,而 DSH 原生的工具调用往往较为底层。dsh-git-manager 插件提供了一个 GitHub 连接的可视化 Git 管理器,它通过引导式的 GitHub-Flow 步骤、提交图以及结构化的工具接口,将 Git 操作与 DSH 代理紧密结合。
介绍¶
dsh-git-manager 是一个专注于 GitHub 工作流的可视化面板插件。它不仅提供图形化的分支管理和变更视图,还向代理暴露了结构化的 Git 和 GitHub 工具(如 git_status、github_pr_create 等)。该插件由 Dayi-Z 维护,在 2.0.0 版本中从 gitcompass 重命名而来。
核心功能¶
该插件主要包含以下模块化能力:
1. 工作流引导与可视化管理¶
- Guided Flow Strip:顶部提供可视化的步骤指示器,展示 GitHub-Flow 的完整阶段:分支 → 提交 → 推送 → PR → 审查 → 合并。
- Commit Graph:提供类似 GitLens 的泳道可视化视图,采用 3 列布局(泳道 / SHA / 提交信息),支持 PR 徽章、变基和回滚操作。
- Branch Management:支持查看、切换、创建、删除、重命名本地/远程分支,支持获取和检出远程分支。
- Changes View:展示文件状态(已暂存/未暂存/未跟踪),支持暂存/取消暂存、提交、差异查看(点击文件查看变更)、暂存/弹出以及推送/拉取/获取。
2. PR 与 Issues 管理¶
- PR Management:支持 PR 列表查看、详情浏览(含检查项、审查、评论)、创建 PR、Squash 合并、审查(通过/要求修改/评论)以及添加评论。
- Issues:支持 Issues 的列表、详情查看、创建新 Issue 以及添加评论。
3. GitHub 集成与 Agent 工具¶
- GitHub Integration:支持设备流 OAuth 登录、PAT 输入、复用
ghCLI 配置以及加密令牌存储(Windows 上使用 DPAPI)。 - Structured Git Tools:为模型侧提供结构化接口,包括
git_status、git_diff、git_branches、git_commit、git_push以及github_pr_*、github_issue_*系列工具。 - Agent Activity Monitor:提供实时的 SSE 流,监控代理的每一次工具调用(开始/完成/失败),并作为仓库观察者检测在插件工具之外执行的 Bash Git 操作(如新提交、分支切换)。
4. 权限与 UI 交互¶
- In-Panel Approvals:所有写操作会在面板内弹出审批卡片,允许直接批准或拒绝。此面板审批会与 DSH 原生模态框竞争(先决断生效),且不受任何审批策略(如
never全访问策略)的自动拒绝影响。 - 主题与国际化:面板样式完全遵循 DSH 主题令牌(无独立调色板),支持自动跟随 DSH Web 的语言环境(中文/英文)。
安装与启用¶
安装该插件需要使用 DSH 的插件安装命令:
dsh plugin --profile web add dsh-git-manager
安装完成后,重启 dsh web。打开一个绑定到 Git 仓库的会话,”Git Manager” 面板将出现在右侧列中。
双宿主模式与自动注册¶
插件支持两种宿主模式:
- Sidebar 模式:当安装了
dsh-better-sidebar插件时,dsh-git-manager会注册为一个侧边栏标签页 (dsh-git-manager:panel),并放弃自己的列,转而由侧边栏承载。 - Dock 模式:当没有
dsh-better-sidebar时,插件保持独立的右侧列卡片,支持折叠(折叠后停止后台轮询)。
插件会自动根据 tools/execute 的路径参数注册仓库(最多 20 个),并在面板底部的两行状态栏中显示当前会话文件夹和正在编辑的仓库路径。
注意事项¶
- 版本更新:插件在 2.0.0 版本中完成了从
gitcompass的重命名,涉及包 ID (dsh-git-manager)、HTTP 路由 (/gitm/*) 和 CSS 变量 (--gm-*) 的迁移。 - 审批机制:面板内的审批是内存单次生效的,若没有面板连接,写操作将快速失败并提示打开面板或预先审批,不会出现长时间挂起。
- 主题适配:面板 UI 使用 DSH 主题令牌,无独立配色方案,因此与 DSH 的皮肤系统完全兼容。