前言¶
用 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,此处不展开。
典型用法¶
- 点击左侧栏 GitHub 图标。
- 选择组织与仓库(默认会选中第一个),再选 milestone、负责人与状态。
- 点击列表行查看详情;需要时在详情里 Hand to agent / New session for this issue,或从右侧 Issues 标签把行拖入当前 Session 的 Composer。
- 在 Composer 中补充上下文(也可不写),发送后卡片变为模板化的 Issue 提示词并建立链接。
- 通过 dock 上的 chip 或详情中的链接列表再次进入 Session,或取消关联。
- 可从面板头 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