Skip to content
dsh-market Browse plugins GitHub 中文

AKS1st/dock-git

Git history visualization for the dock workbench: swimlane commit graph, branch and tag management, stage/commit/push and remote operations.

Stars ★ 0 Category UI Enhancements Listed 2026-08-22

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add github:AKS1st/dock-git

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

中文

The best Git history visualization plugin in the DSH ecosystem — no contest. A swimlane commit graph, branch/tag badges, a three-column diff, stage/commit/push and remote management — the VSCode Git panel transplanted straight into the DSH workbench. Inspecting repos, managing branches or pushing code from DSH? dock-git is the ultimate weapon.

Git history visualization plugin of the dock family: mounts a side-bar launcher (activity item git) that renders the current workspace's git commit history graph (commits / branches / tags / remotes) and supports branch, tag, config, remote, stage, commit and push operations.

Preview

dock-git commit history graph (English UI)

Features

  • Commit history graph: swimlane graph with branch/tag/remote badge glyphs and an "uncommitted changes" node; N+1 probe for "more commits".
  • Commit details: expand a commit to see the message, author, changed-file tree (added/modified/deleted/renamed), old/new file content three-column view, and diff (512 KiB truncation, UTF-16 safe).
  • Multi-repo discovery: scans the session workspace (cwd plus two levels of subdirectories) for independent git repositories and lets you switch the target.
  • Branch/tag management: create, rename, delete branches; create/delete tags; checkout via git switch (no path-semantics ambiguity).
  • Staging and commit: VSCode-style status/stage/unstage/commit (--no-verify, repository hooks never run).
  • Remote operations: list / add / remove / set-url, fetch, pull, fetch-into, push (branch/tag, --force-with-lease supported).
  • Config read/write: read any repository config; writes are limited to user.name / user.email.
  • i18n: built-in Chinese/English UI following the DSH global locale.

Dependencies

Dependency Type Notes
dock >= 0.1.0 peer (required) workbench shell: the side-bar panel, editor-area view and ctx.workbench come from it
git CLI system runtime required: every Git operation spawns the system git, which must be on PATH
DSH Web environment runtime required; client platform is Web
cordis ^4.0.0-rc.7 peer plugin framework (ships with DSH)
react ^18.2.0 peer (optional) needed for client rendering; without it the panel UI does not activate

Optional companions: dock-git is fully independent of file browsing and does not need dock-files; if you also install dock-files plus viewer plugins, files in commit details can seamlessly open through the workbench.

Install

Requires the dock base plugin:

dsh plugin add github:AKS1st/dock
dsh plugin add github:AKS1st/dock-git

Security

  • The /wb-git route only accepts POSTs from trusted origins (loopback / trustedHosts plus same-origin check).
  • git is always spawned directly with an argument vector (never a shell string); the environment is sanitized (GIT_DIR / GIT_WORK_TREE removed, fixed C locale).
  • Every user-controlled argv position is validated: ref names, remote names, config keys, stage paths, commit messages, ... — leading - (option injection), .. / @{ (range/refspec smuggling), pathspec magic (:), control characters and NUL are all rejected.
  • repoRoot is confined to the session workspace (realpath prefix comparison) — git cannot run in arbitrary directories.
  • High-output commands (log / diff / show / status) carry a streaming byte cap; exceeding it kills the child so the host never OOMs.
  • Checkout uses git switch, which never falls back to path semantics (working-tree files cannot be accidentally restored).

License

MIT

Content from the project README on GitHub ↗