前言¶
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 用戶。