jcc1997/dsh-plugins--plugins-git ↗★ 1
dsh-git
DSH git 插件(正式 bundle 形态):task 关联 GitHub/本地仓库/branch/MR,跨插件同步与 [ID] 自动关联
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:jcc1997/dsh-plugins#59b2667ecbc4b8de78eae2b8fa5d69260f093c01&path:plugins/git说明文档
阅读完整 README ↗dsh-git
DSH git 插件:让 kanban 卡片关联 GitHub 仓库 / 本地仓库 / workflow 分支 / MR,提供建分支、提 MR、同步、合并等 agent 工具,并支持跨插件服务(ctx.provide("git"))与 [taskId] 自动关联约定。
能力
- 配置:
git_configure配置 GitHub 仓库(owner/repo)、本地仓库路径与 GitHub token(token 写入宿主 credentials,ref 名GITHUB_TOKEN,不落盘明文); - taskId 约定:卡片自动认领
-形式 taskId([ID]约定);MR 标题携带[taskId]即可被git_sync自动关联到卡片; - workflow 分支/MR:
git_create_branch从主分支切workflow/并推送、自动关联 github-branch;git_create_mr以 head=workflow/ 建 PR 并自动关联 github-mr; - 同步与合并:
git_sync拉取 open MR 写回卡片 meta.sync.github 快照信封;git_merge_pr合并(门禁:卡片须处于 Stage 列),合并后自动 git_sync + 移入 Done; - 跨插件服务:ctx.provide("git")(isConfigured / sync / claimTaskId / link);kanban 的 mr-merged 门禁经 gate.call 调 git.sync 拿 MR 快照判定。
Agent 工具一览
| 工具 | 作用 |
|---|---|
git_configure(owner?, repo?, local_path?, token?) | 配置远端仓库 / 本地路径 / GitHub token(任一字段可选) |
git_claim_task_id(card_id) | 为卡片认领 taskId(已有则原样返回;同 repo 递增) |
git_link(card_id, kind, external_id, ...) | 建立带验证的外部关联(github-repo / github-branch / github-mr / local-repo) |
git_list_mrs(card_id?/owner?/repo?) | 列出仓库 open MR 与标题解析出的 [taskId] |
git_sync(card_id) | 同步卡片关联仓库 MR 状态 → 按 [taskId] 自动关联 → 写回 meta.sync.github 信封 |
git_status(card_id) | 查看卡片 taskId / refs / 同步快照信封 |
git_create_branch(card_id) | workflow 分支前置:本地仓库干净且在主分支 → 切 workflow/ 推送 → 自动关联 github-branch |
git_create_mr(card_id, base?, draft?) | RD 确认后建 MR:head=workflow/、标题带 [taskId] → 自动关联 github-mr |
git_merge_pr(card_id?, owner?, repo?, mr_number, squash?) | 合并 MR:卡片须处于 Stage 列(workflow 门禁)→ 合并后自动同步并移入 Done |
数据模型
- 配置:
~/.dsh/git/config.json({ repo: {owner, name}, localPath }); - 凭证:宿主 credentials,ref 名
GITHUB_TOKEN(git_configure 写入,不落盘明文); - 卡片侧:
refs[](github-repo / github-branch / github-mr / local-repo)+meta.sync.github快照信封(version / lastSyncAt / error / snapshot.mrs); - 分支命名:
workflow/(如 workflow/dsh-plugins-7);MR 标题:[taskId] 标题。
依赖与限制
- 本地 git 操作(git_create_branch)走宿主 bash/shell 服务,需要本地仓库路径(git_configure local_path);
- 远端操作(git_create_mr / git_merge_pr / git_sync)走 GitHub REST API,需要 GITHUB_TOKEN;
- 建分支要求本地仓库干净且在 main/master;已存在同名分支时拒绝重建。
状态
正式 bundle 形态;与 dsh-kanban 门禁(branch-linked / mr-linked / mr-merged)配合,构成 workflow-template 的 git 侧支撑。