dsh-plugin-github-issues: Browse GitHub Issues in DeepSeek Harness and Delegate to Agents

前言

用 DeepSeek Harness(DSH)做仓库相关开发时,Issue 往往在浏览器里,会话在 Harness 里:切窗口、复制标题和链接、再粘贴到 Composer,上下文容易丢。社区插件 dsh-plugin-github-issues(维护者 ckanner,分类为联网工具)在 DSH 内提供 GitHub Issues 工作面:按组织、仓库、milestone、负责人和状态筛选,查看详情(含 Markdown 正文、标签、优先级、关联 PR 与检查状态),并把某个 Issue「交给 Agent」——在新 Session 中暂存为 Composer 卡片,发送后按模板生成任务提示词。插件对 GitHub 只读,不会写回评论或改标签。

这是什么

dsh-plugin-github-issues 是发布在 npm 上的 DSH 插件(MIT 许可证),在带 Web GUI 的 DSH Desktop 中增加左侧 GitHub 面板、右侧 Issues 侧栏标签,以及 Composer 内的暂存卡片与已关联 Issue 的 chip。GitHub API 请求由 Host 进程发起,浏览器侧只收到视图模型;令牌通过本机已登录的 gh CLI 解析,留在内存中,不写入插件配置或页面。

核心功能

下面按 README 中「What you get」表格归纳已核实能力。

GitHub 面板(左侧主面板)

固定级联工具栏:组织 → 仓库 → milestone → 负责人 → 状态;筛选偏好会在重启后记住(存在 profile 的 UI 状态中,而非插件 config)。列表区域可滚动,搜索框固定在上方;详情区独立滚动,展示经消毒的 GitHub 风格 Markdown 全文、milestone 进度、标签、优先级、负责人、关联/提及的 PR 与 checks。owner/repo#number 可在浏览器中打开 GitHub。

右侧 Issues 列

在 Conversation 旁显示同一套筛选后的 Issue 列表,支持拖入 Composer 完成 handoff。

Composer 与 Session 关联

  • 暂存卡片形如 [GitHub] owner/repo#number ×;可附加说明后发送,卡片会按 Settings → GitHub → Prompt template 转为 Issue 任务提示词,并记录 Issue ↔ Session 链接。
  • Composer 下方 dock 显示已关联 chip:开/关状态圆点 + 编号;刷新面板、轮询、窗口聚焦或列表中出现该 Issue 时会从 GitHub 更新状态。
  • 详情区可 进入 Session(最近一条链接)、为本 Issue 新建 Session,或管理多条已链接 Session 的进入/取消关联;取消关联不会删除 Session。同一 Issue 可在多个 Session 中并行处理。

设置

Settings → GitHub:gh 认证状态与 scope、handoff 行为、提示词模板。模板变量包括 {{repo}}、{{number}}、{{title}}、{{url}}、{{state}}、{{milestone}}、{{priority}}、{{assignees}}、{{labels}}、{{prs}}。

限制(使用前需知)

  • 只读:不能发评论、不能改 label/负责人/状态。
  • 列表可见时每 60–120 秒轮询;需即时更新时用 Refresh。
  • 新 handoff 选择 Workspace 按 README 中的启发式优先级(当前 Session 的 Workspace → 同仓库已链接 Session 的 Workspace → 目录/标题匹配仓库名 → Host 当前/最近 Workspace),并非固定映射。
  • 开发与验证针对 DSH Desktop 0.2.1-rc.3;Composer 发送拦截依赖该版本的 DOM,DSH 升级后需自行确认。

安装与启用

插件以当前 DSH 进程的权限运行;安装前建议在 GitHub 仓库阅读源码与 LICENSE,并确认 npm 包归属与维护者信息。

从 npm 安装(推荐,包内已包含构建好的 Host 与浏览器 bundle):

dsh plugin --profile <name> add dsh-plugin-github-issues

需要可复现的 profile 时可固定版本(README 示例):

dsh plugin --profile <name> add dsh-plugin-github-issues@0.4.7

安装后需重启 Harness(profile 在启动时组装)。移除:

dsh plugin --profile <name> remove dsh-plugin-github-issues

环境要求(摘自 README Requirements):

  • 带 Web GUI 的 DSH Desktop(文档写明针对 0.2.1-rc.3 开发与验证)。
  • 对本机使用的 GitHub 主机执行 gh auth login;令牌在 OS 钥匙串中,不写入本包配置。

Release 页还提供可路径安装的打包 tarball(dsh-plugin-github-issues.tgz);本地 checkout 链接安装需 npm install、npm run build 后再 dsh plugin --profile <name> add /path/to/dsh-plugin-github-issues,此处不展开。

典型用法

  1. 点击左侧栏 GitHub 图标。
  2. 选择组织与仓库(默认会选中第一个),再选 milestone、负责人与状态。
  3. 点击列表行查看详情;需要时在详情里 Hand to agent / New session for this issue,或从右侧 Issues 标签把行拖入当前 Session 的 Composer。
  4. 在 Composer 中补充上下文(也可不写),发送后卡片变为模板化的 Issue 提示词并建立链接。
  5. 通过 dock 上的 chip 或详情中的链接列表再次进入 Session,或取消关联。
  6. 可从面板头 Right column 或右侧栏添加菜单(页面类型 Issues)打开右列。

若 Issue 已有链接:enter Session 打开最近一条;新 handoff 的 Workspace 规则见上文「限制」一节。

隐私与持久化

Host 从 gh 解析令牌且仅内存持有;持久化 UI 状态(筛选偏好、提示词模板、Issue ↔ Session 链接)位于 $DSH_HOME/github-issues/state.json(模式 0600)。GitHub 请求不经由浏览器直连。

结尾

dsh-plugin-github-issues 把 Issue 浏览、筛选与「交给 Agent」收进 DSH 同一条工作流,适合已在 Harness 里开 Workspace、又用 gh 管理 GitHub 的开发者。社区目录与 DeepSeek / 幻方无官方从属关系,安装来源以 npm 与仓库 Release 为准。

  • 目录页:https://www.skillhub.cn/plugins/ckanner/dsh-plugin-github-issues
  • 仓库:https://github.com/ckanner/dsh-plugin-github-issues
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye