DeepSeek Harness 插件

jsoncode/dsh-jenkins-cli

Star 数 ★ 0 分类 工具与能力 收录于 2026-08-16

管理多台 Jenkins 服务器,支持从设置页、模型工具或工作区级「执行 Jenkins Job」入口触发构建,宿主 + 浏览器双端、界面中英双语。

安装

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:jsoncode/dsh-jenkins-cli

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本。请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

DeepSeek Harness 插件(双面:宿主 + 浏览器):管理多台 Jenkins 服务器与 Token, 支持设置页配置、模型工具触发构建、工作区级「执行 Jenkins Job」入口。无硬编码路径、 纯 ESM、可发布到 npm / GitHub。界面文案中英双语(跟随主界面语言)。

English

功能

  • 设置 → Jenkins Cli 配置 页(settings.section):多服务器增删改查、测试连接、 跳过 TLS 校验。仅 服务器地址Token 必填(用户名为选填,缺省 admin)。
  • 工作区入口sidebar.footer.action):当当前工作区根目录存在 dsh-jenkins-cli.{json,js,ts} 配置时,侧边栏底部出现按钮,点击打开 执行 Jenkins Job 弹框——环境 Tab(dev/uat/prod…)切换 → 参数表单回显 → 提交构建 → 轮询状态(排队 → 构建中 → 结果,10 分钟超时)。
  • 模型工具(docs/develop/basic/tool):dsh_jenkins_builddsh_jenkins_status
  • 配置(docs/develop/basic/config):Schemastery Config + settings namespace 将界面编辑持久化到 $DSH_HOME/settings.yaml(服务器列表以 JSON 字符串存储, 规避 settings 冻结数组陷阱)。
  • 打包(docs/develop/basic/publish):dsh.bundle + dsh.client(web) manifest。

文件结构

├── index.js            # 宿主半边:Config、settings namespace、dsh-jenkins-cli 命令、模型工具、工作区配置 op
├── client.js           # 浏览器半边(__ModuleLoader__ bundle):设置页、底部入口、环境 Tab 弹框
├── index.d.ts          # 宿主类型声明
├── cordis.patch.yml    # 组合包 patch:按包名引用插件行(无路径)
├── package.json        # dsh.bundle + dsh.client(web) manifest + peerDependencies
├── README.md           # 英文文档(默认)
└── README.zh.md        # 本文档

工作区配置文件(dsh-jenkins-cli.json / .js / .ts)

放在工作区根目录,定义 job、目标服务器与多环境参数。.json 直接解析; .js / .ts 经 node 求值(module.exportsexport default):

{
  "job": "build-app",
  "server": "生产环境",
  "environments": {
    "dev":  { "BRANCH": "main",        "DEPLOY": false },
    "uat":  { "BRANCH": "develop",     "DEPLOY": false },
    "prod": { "BRANCH": "release-1.0", "DEPLOY": true  }
  }
}
  • job(必填):Jenkins 任务路径,如 build-appfolder/build-app
  • server(选填):对应 设置 → Jenkins 里的服务器 name(缺省用唯一一台服务器)。
  • environments:环境名 → 参数键值(布尔值渲染为勾选框,其余为文本框)。

存在该文件时,侧边栏底部出现「Jenkins」按钮 → 弹框内按环境 Tab 切换、回显参数、 提交构建、轮询状态。

安装

# 本地开发
dsh plugin --profile web add ./dsh-jenkins-cli

# 发布后:npm / tarball / GitHub
dsh plugin --profile web add dsh-jenkins-cli
dsh plugin --profile web add ./dsh-jenkins-cli-0.1.4.tgz
dsh plugin --profile web add github:you/dsh-jenkins-cli#<sha>

dsh --profile web --dump-config   # 验证配置层
dsh --profile web                 # 启动(宿主半边需重启才生效)

静态默认服务器也可写在 profile 的 cordis.patch.yml

- insert:
    - id: dsh-jenkins-cli
      name: dsh-jenkins-cli
      config:
        servers:
          - id: prod
            name: 生产环境
            baseUrl: https://jenkins.example.com
            username: admin
            token: <API Token 或密码>
            insecure: false

发布

npm publish            # 纯 JS,无需构建
npm pack               # 或 tarball
git push origin main   # 或 GitHub(纯 JS 包 git 安装无需 prepare 授权)

实现说明

  • Jenkins REST:curl.exe(经宿主 shell 服务),Basic 认证 + CSRF crumb + --data-binary @-(表单体经 stdin,UTF-8 无 BOM);-D - 解析状态码与 Location
  • 浏览器↔宿主:ctx.remote.commands.execute(sessionId, '/dsh-jenkins-cli <json>'), 宿主错误带 code,客户端按语言本地化(未覆盖的兜底显示原文)。
  • peerDependencies(@deepseek-ai/cordisdsh-toolsschemasterydsh-settingsdsh-commandsdsh-sessiondsh-api-remotes、client-runtime/ui-slots/ui-settings/ cordis-client-runner、react)由宿主安装时解析。
  • 未修改官方 deepseek-harness 项目:全部能力走现有 slot(sidebar.footer.actionsettings.sectionshell.overlay)与命令传输。

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →