前言¶
在開發 DSH 智能體時,與 CI 系統的交互通常涉及手動觸發工作流、查詢狀態和排查日誌。ci-runner 插件將 GitHub Actions(workflow_dispatch、check-run API)和本地命令管道整合到一個統一的接口中,實現了日誌流式傳輸、狀態跟蹤以及利用 DeepSeek 生成故障診斷報告。
是什麼¶
這是一個由 JohnXu22786 維護的 DSH 插件。它提供了一套工具集,用於觸發 GitHub Actions 工作流或本地測試管道,流式傳輸日誌,並在失敗時將日誌尾部發送給 DeepSeek 以生成 Markdown 報告。
安裝與配置¶
前置要求¶
- Node.js >= 18.17
- 已安裝 DeepSeek Harness
- GitHub Token 配置在環境變量
GITHUB_TOKEN中(需要actions:write或actions:read權限)
安裝¶
使用插件包安裝:
dsh plugin --profile demo add ./path/to/ci-runner
安裝後,插件會通過 cordis.patch.yml 插入適配器入口。
配置¶
插件配置通常在 profile/config.yml 中設置。以下是關鍵配置項:
ci-runner:
github:
defaultRepo: owner/repo
defaultBranch: main
apiBase: https://api.github.com
pollIntervalMs: 5000
pollTimeoutMs: 600000
diagnosis:
llm:
baseUrl: https://api.deepseek.com/v1
apiKey: sk-...
model: deepseek-chat
maxTailChars: 12000
功能與工具¶
插件提供 5 個核心工具,均通過 ctx.tools 訪問:
- ci_trigger:觸發 GitHub
workflow_dispatch或運行本地管道直到完成。 - ci_status:查詢運行狀態(queued/in_progress/completed)及結論。
- ci_logs:讀取日誌,日誌已掩碼且尾部截斷。
- ci_watch:等待運行完成,失敗時包含日誌尾部。
- ci_diagnose:端到端診斷。運行/等待後,將失敗日誌尾部發送給 DeepSeek,生成包含失敗階段、錯誤分類、根因、修復步驟和相關文件的 Markdown 報告。
安全與運行時¶
- 零運行時依賴:僅依賴
fetch和node:child_process。 - 憑據處理:GitHub Token 僅從環境變量讀取,不持久化,運行時即用即棄。
- 日誌安全:返回的日誌和報告會對已知密鑰進行掩碼處理。
適用場景¶
適合需要自動化 CI 反饋、故障自愈或日誌分析的 DSH 智能體開發者。
總結¶
ci-runner 將 CI 觸發、狀態查詢、日誌查看和智能診斷整合爲標準工具。它不依賴複雜的運行時環境,通過環境變量管理憑據,適合集成到各類自動化流程中。
- GitHub 倉庫:JohnXu22786/ci-runner
- 插件目錄:ci-runner - SkillHub