FlutterSoul/dsh-git-workbench
Git and GitHub pull-request workbench for DeepSeek Harness, with agent tools and an integrated Web UI.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
dsh-git-workbench
面向 DeepSeek Harness 的 Git 与 GitHub 拉取请求工作台,同时提供模型工具和集成在 DSH Web 侧栏中的操作界面。
状态:实验性。DeepSeek Harness 当前仍为开发者预览版,插件接口可能变化。本版本以 DSH
0.1.0-rc.6为兼容基线。
功能
- 查看仓库状态、暂存/未暂存差异、提交历史和本地/远程分支
- 暂存、取消暂存、安全还原、提交、创建/切换/安全删除分支
- Fetch、默认仅快进的 Pull,以及不提供强推参数的 Push
- GitHub PR:列表、详情、创建、编辑、检出、合并和评论
- DSH Web 侧栏工作台:变更、文本文件编辑、提交、分支、历史、PR
- 与界面共用同一实现的模型工具:
git_status、git_diff、git_log、git_stage、git_commit、git_branch、git_sync、github_pr
本项目对齐的是 Codex 等编程代理中的 Git/GitHub 工作流,不宣称复刻与 Git 无关的 Codex 专有能力。
环境要求
- Node.js
^22.19.0或>=24 - DeepSeek Harness
0.1.0-rc.6 PATH中可用的 Git- PR 功能需要
PATH中可用的 GitHub CLI,并已执行gh auth login
插件不保存 GitHub Token,认证始终由 Git 和 gh 管理。
从 GitHub 安装
在 npm 正式发布前,可从 GitHub 仓库安装:
dsh plugin --profile web add github:FlutterSoul/dsh-git-workbench
Git 源码安装会执行本项目的 prepare 构建。pnpm 10 及以上版本会在首次安装时按设计拒绝执行。审阅仓库后,将 DSH 报错中打印的精确 package key 写入 $DSH_HOME/profiles/web/pnpm-workspace.yaml,再重试安装。pnpm 11.19 及以上版本可使用仓库级配置:
allowBuilds:
'dsh-git-workbench@git+https://github.com/FlutterSoul/dsh-git-workbench.git': true
这只授权该 Git 仓库执行构建,不要全局关闭 pnpm 的构建保护。若要求可复现安装,请在 GitHub specifier 后附加已审阅的 commit 或 tag。
启动 DSH Web:
dsh --profile web
侧栏底部会出现 Git 入口,工作台自动跟随当前任务已注册的工作区。
配置
cordis.patch.yml 会用默认配置插入插件。如需调整,可在 DSH profile 的 Loader 条目中配置:
| 配置项 | 默认值 | 作用 |
|---|---|---|
gitBinary | git | Git 可执行文件 |
ghBinary | gh | GitHub CLI 可执行文件 |
commandTimeoutMs | 120000 | 单个进程超时 |
maxOutputBytes | 4194304 | 命令输出上限 |
maxFileBytes | 1048576 | 编辑器可打开的文件大小上限 |
maxRequestBytes | 2097152 | Web API 请求体上限 |
defaultRemote | origin | 默认远端 |
defaultPullMode | ff-only | ff-only、rebase 或 merge |
pushBeforePrCreate | true | 创建 PR 前推送当前分支 |
mutationApproval | all | 模型工具审批策略:all、destructive 或 none |
allowedRoots | [] | 允许界面访问的附加绝对根目录 |
界面默认只接受 DSH 已注册工作区。只有部署方确实需要暴露额外工作区树时,才应配置 allowedRoots。
安全设计
- 子进程使用
spawn且shell: false,不会把参数拼接成 Shell 命令。 - 关闭 Git 与 GitHub CLI 的交互式凭据提示和分页器。
- 同一仓库的写操作串行执行。
- 模型发起的写操作默认要求审批;没有审批服务时自动拒绝。
- 浏览器调用要求同源,并限制在已注册或显式配置的工作区。
- 文本保存携带预期 SHA-256;打开后文件被外部修改时拒绝覆盖。
- 不暴露强推、强制删分支、
git clean、任意 Git 参数或任意gh参数。 - “丢弃”只对明确的已跟踪路径执行
git restore --worktree,不会删除未跟踪文件。
界面按钮本身是用户直接操作;丢弃变更、删除分支和合并 PR 还会再次确认。
开发与验证
pnpm install --ignore-scripts
pnpm check
pnpm pack --dry-run
本地接入 DSH:
dsh plugin --profile web add ./path/to/dsh-git-workbench
npx @deepseek-ai/dsh web
自动测试会创建一次性 Git 仓库,不访问 GitHub。PR 的在线验证需要使用你有权限控制的仓库和已登录的 gh。
边界
- 编辑器只处理 UTF-8 文本。二进制文件或超过
maxFileBytes的文件只展示差异。 - PR 当前通过 GitHub CLI 实现,不支持其他代码托管平台。
- 可以查看冲突状态并编辑冲突文件,但不包含语义化三方合并编辑器。
- 插件不负责创建仓库、改写历史、管理凭据或绕过分支保护。
许可证
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
prepare이(가) 감지되었습니다. 설치 전에 스크립트를 검토하세요.
lifecycle-scripts