DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

handsomeboy65 /

handsomeboy65/dsh-task-hub

Verified

This plugin has no description yet.

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@261d7ca6

dsh-task-hub

English · 简体中文

DSH 的任务中心插件:从 TAPD / 禅道 / GitLab 中读取分配给你的需求、任务或 Issue,选一个工作区、手填分支名,一键派发 Agent 开始干活。

三个来源是三选一:顶部用 tab 切换当前来源,同一时间只列出一个来源的数据,也只有一个来源生效;切换不会把三个来源合并展示。每个来源的地址、凭据、项目等配置分别保存在 settings.json 里,来回切换不会丢。

安装

dsh plugin --profile web add dsh-task-hub

装完重启 dsh web,侧边栏会出现「任务中心」。npm 上还没发布时可以改从仓库安装:

dsh plugin --profile web add github:handsomeboy65/dsh-task-hub

桌面端请在应用内的 设置 → 插件 里安装。

分支名手动填写

派发弹窗要求填写完整分支名(例如 feature/order-export),插件不会再自动拼接 issue_<需求号>,也不会追加任何后缀。分支名会用 git check-ref-format --branch 校验,非法名字直接报错。

首次配置

点击面板右上角「设置」,先在顶部选择来源,再填写该来源的配置。

TAPD

字段 说明
认证方式 Token 或 API 账号 + 密码
API 账号 / 密码 TAPD 开放平台 → 个人设置 → API 账号,不是登录密码
处理人 过滤需求的处理人;留空表示用 TAPD 账号本身
项目 ID TAPD 项目的 workspace_id,多个用逗号分隔;可点「拉取项目」选择
Nick 拉取项目列表时使用,可留空

禅道

字段 说明
禅道地址 例如 https://zentao.example.com,会自动补 /api.php/v1
账号 / 密码 禅道登录账号;密码只写入 DSH credentials
范围 产品 读取产品需求(stories),项目 读取项目下各执行的任务(tasks)
产品 / 项目 填 ID,或点「拉取列表」后从结果里选

禅道没有“分配给我”的接口,插件会先登录拿 token,再按当前账号在本地过滤。

GitLab

字段 说明
GitLab 地址 https://gitlab.com、极狐 GitLab 或自建实例根地址
访问令牌 Personal Access Token,至少 api / read_api 权限
项目路径 可选,group/project;留空表示读取整个实例上分配给你的 Issue
标签 可选,逗号分隔,作为 GitLab labels 过滤条件

凭据写入 DSH credentials(也可用环境变量 TAPD_API_USER / TAPD_API_TOKEN / TAPD_API_PASSWORD / ZENTAO_PASSWORD / GITLAB_TOKEN 提供),任何密钥都不会落在插件数据文件里。

通用

字段 说明
默认工作区 派发时默认选中的 DSH 工作区(如 TMS2.0)
基线分支 留空则自动探测 origin/HEAD
隔离 worktree 默认开启:在仓库同级 .dsh-worktrees/<仓库>-<分支> 另开工作树,不打断你当前分支
隐藏已完成 列表默认只显示未完成项

派发流程

  1. 面板列出当前来源里「处理人 = 我」的条目,按最近修改排序,可筛选 未完成 / 已完成 / 全部。TAPD 需求的「应用」字段(如 德速TMS2.0客户端)单独占一列,排在 ID 之前;多应用时逐个标签竖排,当前来源没有应用字段时该列整列隐藏。

  2. 点某条的「派发 Agent」。

  3. 在弹窗里确认:目标工作区(或手填仓库路径)、分支名称、是否用 worktree、基线分支,以及可选的「补充要求」。

    「补充要求」不是拿来手写整条任务说明的:留空时插件会用需求标题、描述、附件、图片和工作约定自动生成一份任务说明;你填的内容会以 ## 补充要求 追加在它后面,不会替换需求正文。

  4. 确认后插件依次执行:

    • git worktree add -b <分支名>(或就地 checkout -b);
    • 在工作树/仓库上建立(或复用)DSH 工作区,并创建会话;
    • 把条目标题、描述、状态、优先级、应用、截止时间、来源链接和「不要 push、跑测试、中文总结」等工作约定写进新会话的输入框草稿;
    • TAPD 会带上需求附件(含父/根需求)和描述截图;GitLab 会下载描述里的 /uploads/... 图片与文件;禅道目前只带文字。这些附件同样只作为草稿附件挂在输入框上;
    • 会话标题改为 <分支名> · <标题>,并自动跳转到该会话。 不会自动发送:跳过去之后,任务说明和附件都已经在输入框里,你看一眼、改一改,自己按发送。
  5. 面板显示分支、会话状态(运行中 / 空闲 / 待发送 / 会话已不存在),每 8 秒刷新一次运行状态。

重复派发同一条时,如果之前的会话还在,会直接返回原会话而不会再建分支;那次派发的草稿还在的话,点「打开」会把草稿重新放回输入框(输入框已有内容时不会覆盖)。只有当你显式点「补发附件」时,才会把附件真正发给该会话。

数据与失败模式

  • 设置:~/.dsh/task-hub/settings.json;派发记录:~/.dsh/task-hub/state.json。
  • 派发记录按 来源:id(如 zentao:task-31)区分,不同系统的同号条目不会互相覆盖;旧的 TAPD 记录仍按原 id 兼容。
  • 就地派发要求工作区干净,否则报「工作区有未提交改动」。
  • 已存在同名 worktree 但停在别的分支时报冲突,不会强改。
  • 单个项目/产品查询失败不会拖垮整张列表,失败信息会在面板上提示。

开发

npm test     # 62 个用例:纯函数、git 流程、派发、客户端渲染、三来源适配

改完代码后,已安装的 bundle 需要重启 DSH 才会加载新的 JS 代次(安装时的首次加载可走 HMR)。

限制

  • TAPD 只对接需求(stories),不含任务/缺陷;禅道按产品读需求或按项目读执行任务,不含缺陷;GitLab 只读 Issue,不含 MR。
  • 不回写来源系统(不改状态、不写评论)。
  • 不代替 Agent 执行计划;派发后由会话里的 Agent 自己规划与实现。
—/ 5

No ratings yet

Verified DSH bundle

Commit 261d7ca6d3dc

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout