前言¶
DeepSeek Harness (DSH) 采用“一切皆插件”的理念。在智能体开发与调试过程中,频繁切换页面查看 GitHub PR 的构建状态会打断工作流。pauloapoloni/dsh-pr-checks 插件将这一状态信息下沉到侧边栏底部,使开发者无需离开 DSH 界面即可掌握 PR 的构建进度。
插件简介¶
dsh-pr-checks 是一个 DSH 插件,包含宿主端(Host)和 Web 客户端。它利用 gh CLI 查询 GitHub Actions 检查状态,并将结果按 Workspace -> Project -> PR 的层级结构展示在侧边栏底部。
核心功能¶
该插件主要提供以下能力:
- 状态可视化:在侧边栏底部显示 PR 的 GitHub Actions 检查状态和进度。
- 层级分组:按 Workspace(工作区)、Project(项目)、PR 进行分组展示。
- 进度反馈:显示进度条(已完成/总数),并通过彩色圆点展示具体检查项的状态(带有 Tooltip 说明)。
- 自动过滤与隐藏:仅显示运行中的检查(
IN_PROGRESS/QUEUED/PENDING)。当所有检查完成时,整个组件自动隐藏;折叠侧边栏时也会隐藏该组件。 - 持久化与兼容:作为完整的 Profile 插件,无需修改 DSH 运行时文件,支持 DSH 版本更新。
安装与启用¶
安装前请确保已安装 gh CLI 并完成认证,且拥有 repo 或 workflow 权限。
- 通过命令行安装:
使用插件管理命令添加该包。包名在 npm 上为dsh-pr-checks。
dsh plugin --profile <name> add dsh-pr-checks
或者直接从 Git 仓库安装:
dsh plugin --profile <name> add github:pauloapoloni/dsh-pr-checks
-
重启与加载:
安装完成后,必须重启dsh web并在 GUI 中重新加载。 -
手动安装(可选):
如果需要手动安装(例如跳过 bundle 层),需执行以下步骤:
cd ~/.dsh/profiles/web
npm install github:pauloapoloni/dsh-pr-checks
并在 `cordis.patch.yml` 中注册条目:
- insert:
- id: dsh-pr-checks
name: dsh-pr-checks
config:
cacheMs: 10000 # 响应缓存时间
includeAllAuthors: false # true 为显示所有 PR,否则仅显示当前用户
配置说明¶
安装后,可通过配置项调整插件行为:
| 配置项 | 默认值 | 说明 |
|---|---|---|
cacheMs |
10000 |
接口响应缓存时间(毫秒)。 |
includeAllAuthors |
false |
是否显示所有 open PR,而非仅当前认证用户的 PR。 |
authors |
— | 指定登录用户名进行过滤(默认为认证用户)。 |
repos |
— | 额外需要检查的仓库列表(例如 ["org/repo"])。 |
工作原理¶
该插件通过以下机制运作:
-
Host 端 (
lib/index.js):- 扫描 DSH 工作区(
~/.dsh/storages/workspace.json)。 - 调用
gh pr list查询 Open PR。 - 暴露
GET /api/pr-checks接口,返回包含工作区、项目和 PR 详情的数据结构。
- 扫描 DSH 工作区(
-
Client 端 (
lib/client.js):- 将组件注册到 DSH 的
sidebar.footer.action插槽中。 - 每 30 秒轮询一次
/api/pr-checks接口获取最新状态。
- 将组件注册到 DSH 的
注意事项¶
- 依赖 gh CLI:插件运行依赖
ghCLI 的认证状态。 - 重启要求:安装后必须重启
dsh web,代码层面的修改(如lib/*.js)同样需要重启进程才能生效(Loader 缓存机制)。 - 生态说明:该插件属于 DSH 生态的第三方插件,由社区维护,与 DeepSeek 官方无从属关系。
总结¶
dsh-pr-checks 通过将 GitHub Actions 状态集成到侧边栏,简化了开发者对 PR 构建进度的监控流程。其自动过滤运行中任务、支持配置过滤以及无侵入式的安装方式,使其适合需要频繁管理多项目 PR 状态的 DSH 用户。