JFWaskin/dsh-git-nexus

Unified Git + GitHub + workflow + files panel for the DeepSeek Harness (DSH) web profile. Community plugin tagged dsh-plugin.

Bundle 已验证 MIT JavaScript 未知
Bundle 已验证

已收录

0

Git

Bundle 已验证

版本未知
语言JavaScript
许可证MIT
在 GitHub 查看

预览

第 1 个预览,共 2 个:JFWaskin/dsh-git-nexus
第 2 个预览,共 2 个:JFWaskin/dsh-git-nexus

功能介绍

DSH Web 的 Git 与 GitHub 面板:暂存/撤销/丢弃/差异、分支、提交、推送/拉取/同步、日志、文件浏览、工作流看板,以及带 PR 创建的 GitHub OAuth。

适合

  • 希望在一个面板中完成 Git 状态、差异、暂存、分支、历史和文件浏览的 DSH Web profile 用户。
  • 希望在本地仓库操作旁使用 GitHub 身份验证与 PR 创建功能的开发者。
  • 在管理 Git 工作区时需要持久化工作流看板的团队。

不适合

  • 无头或非 Web 的 DSH profile;该插件明确面向 Web profile。
  • 未由 Git 管理的工作区;仓库面板在此类场景中价值有限。
  • 既没有已认证的 `gh` CLI,也无法提供 GitHub OAuth App Client ID 的 GitHub 工作流。

README

dsh-git-nexus

A single, self-contained DeepSeek Harness (DSH) web plugin that merges the git-management features of the popular dsh-web-ui plugin (SCM change panel + branch management) with GitHub access, a workflow board, and file browsing — one panel instead of several plugins.

Features

  • Changes (SCM) — working-tree status, per-file diff, stage / unstage / discard, commit.
  • Branches — list, switch, create, delete.
  • Remote — push, pull, sync (pull then push), fetch.
  • Log — bounded, structured commit history.
  • Files — list tracked files with search, read any text file.
  • Workflow — persistent step board (Claude Code-style plan tracking).
  • GitHub — OAuth Device Flow login (full repo access, revocable), scope seal, PR creation.

Install

dsh plugin --profile web add "file:/absolute/path/to/dsh-git-nexus"
# then restart the web profile
dsh web

The plugin appears under Settings → Plugins and the panel pill appears in the session header of git-managed workspaces.

Compatibility

Targets DSH 0.1.0-rc.6 (web profile). The plugin ships a strict Typert host manifest (./typert) and mounts strict client codecs, matching the conventions of the plugins inside the official repository.

This is a community plugin published under the dsh-plugin topic — the channel the DeepSeek Harness maintainers ask community extensions to use (see the project’s CONTRIBUTING.md).

GitHub OAuth

GitHub auth uses the device flow, so no long-lived PAT is written to disk. You need a GitHub OAuth App client id:

  1. Go to GitHub → Settings → Developer settings → OAuth Apps → New OAuth App.
  2. Any name / homepage / callback will do (device flow ignores the callback).
  3. Paste the resulting Client ID into the panel’s GitHub tab, click Connect, then open the printed URL and enter the user code.

The resulting token requests the repo, workflow, read:user and user:email scopes and is stored with 0600 permissions under ~/.dsh/storages/dsh-git-nexus/. If the gh CLI is already authenticated, the plugin uses it automatically and no client id is required.

Security notes

  • Every git/file command runs through a fresh /bin/sh -c child process with a 30s timeout and a 2 MiB output cap. The web profile scopes DSH’s shell service to per-session agent realms, so the host-plane gateway executes directly instead of injecting it.
  • Branch names, paths, and commit messages are shell-quoted; control characters are rejected.
  • GitHub tokens live only under ~/.dsh/storages/dsh-git-nexus/settings.json (mode 0600).

License

MIT

常见问题常见问题

在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:JFWaskin/dsh-git-nexus。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。