前言¶
在开发 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