🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

GitHub 事项自动处理 bkMoon1024/dsh-ci-cd-bot

DeepSeek Harnessv0.1.0
bkMoon102481 天前有提交已提供中文文档扫描:含敏感能力

自动修复故障 issue,审查 PR 并推送代码

28.8/100
综合分
3
GitHub 星标
42
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-ci-cd-bot
npm 源 · dsh-ci-cd-bot 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · tool
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/10/24·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 81 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-ci-cd-bot @ 0.1.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/9/24 11:30:45

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 18 处,展示前 17 条)
  • 写入本地文件
    lib/index.js:128
    writeFileSync(tmp, content, "utf8");
  • 写入本地文件
    lib/index.js:129
    renameSync(tmp, path);
  • 读取本地文件
    lib/index.js:158
    if (!existsSync(path)) return { ...DEFAULTS };
  • 读取本地文件
    lib/index.js:159
    const raw = JSON.parse(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/index.js:173
    mkdirSync(join(path, ".."), { recursive: true });
  • 写入本地文件
    lib/index.js:176
    chmodSync(path, 384);
  • 读取本地文件
    lib/index.js:200
    if (!existsSync2(path)) return { version: 1, items: {}, watermarks: {} };
  • 读取本地文件
    lib/index.js:201
    const raw = JSON.parse(readFileSync2(path, "utf8"));
  • 写入本地文件
    lib/index.js:260
    mkdirSync2(join2(path, ".."), { recursive: true });
  • 发起网络请求
    lib/index.js:305
    const res = await fetch(`${API_ROOT}${path}`, { ...init, headers });
  • 读取本地文件
    lib/index.js:500
    entries = readdirSync(root, { withFileTypes: true });
  • 读取本地文件
    lib/index.js:525
    if (seen.has(path) || !existsSync3(path) || !statSync(path).isDirectory()) continue;
  • 发起网络请求
    lib/client.js:225
    const res = await fetch(path, {
  • 发起网络请求
    lib/client.js:233
    const res = await fetch(API.status);
  • 发起网络请求
    lib/client.js:237
    const res = await fetch(API.items);
  • 发起网络请求
    lib/client.js:242
    const res = await fetch(API.config);
  • 发起网络请求
    lib/client.js:246
    const res = await fetch(API.config, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-workspace@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-system-prompt
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 自动修复故障issue
  • 审查PR
  • 推送代码

README

由 DeepSeek 最新模型翻译生成
dsh-ci-cd-bot DSH Web UI 插件 —— 自动监听 GitHub 账户仓库的 issue / PR:本地工作区仓库的故障 issue 自动修复并推送,PR、功能添加、非故障事项进入「CI/CD」面板清单,一键选择后自动实现 / 审查 / 推送。 English · 中文 它做什么 | 事项 | 处置 | | 故障 issue(bug),仓库在本地工作区 | 全自动:agent 在仓库 checkout 中修复并自测 → 插件提交推送(可自动开 PR)→ 回复 issue | | 功能添加(feature) | 进入面板清单 → 点击「处理」→ agent 实现 → 推送 → 回复 issue | | 非故障事项(question / 维护) | 进入面板清单 → 有本地 checkout 则实现并推送;否则 agent 起草回复并评论 | | PR | 进入面板清单 → 点击「审查」→ 拉取 diff → agent 审查 → 按结论自动提交 APPROVE / REQUEST_CHANGES / COMMENT,approve 且可合并时自动合并(可配置) | 每次执行都是真实 agent 会话(保留在会话列表中,可全程查看)。git 分支 / 提交 / 推送由插件统一执行,确定性可控;推送策略可配为「自动」或「面板确认」。
展开完整文档(README 剩余 1 节)
dsh-ci-cd-bot

DSH Web UI 插件 —— 自动监听 GitHub 账户仓库的 issue / PR:本地工作区仓库的故障 issue 自动修复并推送,PR、功能添加、非故障事项进入「CI/CD」面板清单,一键选择后自动实现 / 审查 / 推送。

English · 中文

它做什么

| 事项 | 处置 |
| 故障 issue(bug),仓库在本地工作区 | 全自动:agent 在仓库 checkout 中修复并自测 → 插件提交推送(可自动开 PR)→ 回复 issue |
| 功能添加(feature) | 进入面板清单 → 点击「处理」→ agent 实现 → 推送 → 回复 issue |
| 非故障事项(question / 维护) | 进入面板清单 → 有本地 checkout 则实现并推送;否则 agent 起草回复并评论 |
| PR | 进入面板清单 → 点击「审查」→ 拉取 diff → agent 审查 → 按结论自动提交 APPROVE / REQUEST_CHANGES / COMMENT,approve 且可合并时自动合并(可配置) |

每次执行都是真实 agent 会话(保留在会话列表中,可全程查看)。git 分支 / 提交 / 推送由插件统一执行,确定性可控;推送策略可配为「自动」或「面板确认」。

工作原理

宿主半区每 N 分钟(可配置)轮询 GitHub:列出账户仓库 → 按水位增量拉取各仓库近期更新的 issue / PR(首轮只回填最近几天)→ 按标签规则 + 标题/正文关键词分类 → 把仓库匹配到「配置的扫描根目录 ∪ DSH 工作区」下的本地 checkout。新出现的本地 bug 自动入队执行;其余全部进面板清单,等待用户选择。

agent 运行走官方 headless 模式——ctx.agents.create({ meta: { cwd } }) + followup + whenIdle,用会话日志里 turn/end 的 reason 判定成败。agent 只改代码并自测(prompt 明确禁止 git 操作);插件随后执行 fetch → checkout ghbot/#- → add → commit → push,并回写 GitHub(评论、PR、审查、合并)。

浏览器半区注入侧边栏 CI/CD 入口与中心列面板(通过 dsh-panel-activate 与兄弟面板互斥)。配置存 ~/.dsh/dsh-ci-cd-bot.json(0600)——Token 永不离宿主,设置页经 loopback 防护的 /api/dsh-ghbot/ 路由族读写。

快速开始

DSH 插件安装进 profile(dsh web 对应 web profile)。需要 Node.js ≥ 22 与 dsh 0.1.0-rc.6。

包已发布到 npm,推荐直接使用 npm 安装;从源码构建仅用于开发 / 调试。

完整安装手册——前置要求、npm / 源码 / 手动三种安装方式、验证、更新、卸载:INSTALL.zh.md。

从 npm 安装(推荐)

dsh plugin --profile web add dsh-ci-cd-bot
dsh web

从源码安装(开发 / 调试)

git clone https://github.com/bkMoon1024/dsh-ci-cd-bot.git
cd dsh-ci-cd-bot
npm install --ignore-scripts # esbuild 平台二进制经 optionalDependencies 提供,无需 postinstall
npm run build
npm test # 11 个无头行为场景

包自带 cordis.patch.yml(通过 dsh.bundle.patch 声明),插件行会自动注册
dsh plugin --profile web add link:$(pwd)

dsh web

手动安装(无需 pnpm / dsh plugin)

ln -sfn "$(pwd)" ~/.dsh/profiles/node_modules/dsh-ci-cd-bot
然后在 ~/.dsh/profiles/web/cordis.patch.yml 追加:
- insert:
- id: ci-cd-bot
name: 'dsh-ci-cd-bot'
dsh web

从手动安装切换到 dsh plugin add 时,请先删掉手动加的 insert 条目——包自带的 bundle patch 会注册插件行,重复注册会冲突。

验证与卸载

dsh --profile web --dump-config | grep ci-cd-bot # 确认配置层已挂载

重启后侧边栏出现 CI/CD 入口。首次使用:打开面板 → 设置 → 填入 GitHub Token(repo 权限)、按需配置扫描根目录 → 保存。

dsh plugin --profile web remove dsh-ci-cd-bot # npm / 仓库安装
或删除软链 + insert 条目 # 手动安装
dsh web

配置

大多数参数在面板设置页调整——保存后立即生效,并持久化到 ~/.dsh/dsh-ci-cd-bot.json(announceToAgent 仅支持 JSON / API 修改)。完整配置手册——必填项、默认值、示例、安全说明:CONFIG.zh.md。

| 字段 | 默认 | 说明 |
| GitHub Token | 空 | GitHub PAT(repo 权限);只在宿主侧使用,绝不下发浏览器 |
| 轮询间隔 (ms) | 300000 | 监听器轮询 GitHub 的频率 |
| 首轮回填窗口(天) | 3 | 首轮只处理该窗口内的开放事项 |
| 扫描根目录 | 空 | 额外扫描的本地根目录(DSH 工作区自动加入) |
| 故障标签 | bug,故障,defect | 判定为 bug 的标签集 |
| 功能标签 | enhancement,feature,需求 | 判定为功能需求的标签集 |
| 本地故障自动修复 | 开 | 本地 checkout 的 bug issue 自动开跑 |
| 推送策略 | auto | auto 直接推送;confirm 停在面板确认 |
| 修复后自动开 PR | 开 | 推送 ghbot/… 分支并开 PR,而非直接合入 |
| 完成后回复 issue | 开 | 运行结束后评论变更摘要 |
| 审查通过自动合并 | 开 | 审查结论为 approve 时自动 merge |
| 执行并发上限 | 2 | 同时运行的 agent 上限 |
| 单次运行超时 (ms) | 1800000 | 一次运行的最长时间 |
| 启用监听 | 开 | 轮询与执行总开关 |
| 向 agent 通告 | 开 | 系统提示区通告插件,便于会话 agent 协作 |
| 包含/排除仓库 | 空 | owner/repo 过滤(空 = 全部账户仓库) |

技术栈与结构

| 分层 | 选型 |
| 平台 | DSH Web GUI 插件(宿主半区 + 浏览器半区,shipped 形态,不改 dsh 源码) |
| 语言 | TypeScript(宿主半区跑在普通 Node 进程:node 内置、fetch、dsh SDK 包均可直接用) |
| 构建 | esbuild 平台二进制直调 + tsc 声明(node build.mjs) |
| 运行时依赖 | 宿主半区:@deepseek-ai/dsh-agent / dsh-llm / dsh-session(由 dsh 安装解析);浏览器半区:react(平台种子) |
| 存储 | ~/.dsh/dsh-ci-cd-bot.json(配置)+ ~/.dsh/dsh-ci-cd-bot-state.json(条目 / 水位) |

dsh-ci-cd-bot/
├── package.json # 插件清单(dsh.client / dsh.bundle) ├── cordis.patch.yml # profile 补丁层:注册插件行 ├── INSTALL.zh.md / CONFIG.zh.md # 安装手册 / 配置手册 ├── build.mjs # esbuild 构建(浏览器 CJS 包装 + 宿主 ESM) ├── tsconfig.json / tsconfig.build.json ├── src/ │ ├── index.ts # 宿主半区:listener/runner/queue/routes/通告 │ ├── gh.ts # GitHub REST 客户端(fetch、分页、限流退避) │ ├── listener.ts # 轮询引擎(水位、本地 bug 自动入队) │ ├── agent-run.ts # ctx.agents.create({meta:{cwd}}) → followup → whenIdle │ ├── runner.ts # 修复/实现/回复流 + git 收尾 + 推送策略 │ ├── review.ts # PR 审查流(diff → agent → 提交审查 / 合并) │ ├── routes.ts # /api/dsh-ghbot/(loopback 防护) │ └── client/ │ ├── index.ts # 浏览器半区入口 │ ├── sidebar-entry.ts# 侧边栏 DOM 注入(family block 协作约定) │ ├── board-mount.tsx # 中心列 React 根 + 面板互斥 │ ├── Board.tsx / settings-view.tsx / controller.ts / api.ts │ └── locales.ts / board.css / styles.ts ├── tests/run.mjs # 11 个无头行为场景 ├── lib/ # 构建产物(已提交,可直接链接) └── docs/ # banner 图 + 设计笔记

已知限制

- 兄弟面板(任务看板、SSH)不认识 ghbot 面板事件值:本面板打开时它们内部状态不自关(视觉已互斥,多一次点击即可切回)。
- 分类为纯规则(标签 + 关键词,均可配置);LLM 兜底列为后续项。
- 超时的运行只标记失败,不会中途取消 agent。
- 仅支持 github.com(暂不支持 GitHub Enterprise);面板刷新走轮询而非 SSE。

开发

npm run typecheck # tsc --noEmit
npm run build # lib/client.js + lib/index.js + lib/types
npm test # node tests/run.mjs — 11 个行为场景

源码需兼容 Node 的 strip-only 类型剥离加载器(测试运行器使用):禁止 TS 参数属性(constructor(readonly x))、enum、namespace。

发布

npm run build
npm publish # 发布 dsh-ci-cd-bot(含 bundle 的 cordis.patch.yml)

亦可仿照同类 DSH 插件增加 tag 触发的 CI 流水线(校验版本 → 构建测试 → 发布 → GitHub Release 附构建产物)。

链接

- 仓库: github.com/bkMoon1024/dsh-ci-cd-bot
- 安装: INSTALL.zh.md · 配置: CONFIG.zh.md
- DeepSeek Harness: github.com/deepseek-ai/deepseek-harness

License

MIT

MIT © bkMoon1024
预览分享卡片长什么样 ↓bkMoon1024/dsh-ci-cd-bot
分享 · DeepSeek Harness Hub
bkMoon1024/dsh-ci-cd-bot

自动修复故障 issue,审查 PR 并推送代码

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部