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

GitHub 流程助手 ZariaEcho/dsh-github-workflow

DeepSeek Harness
ZariaEcho25 天前有提交已提供中文文档扫描:含敏感能力

打通 Issue 到合并的完整开发闭环

30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

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

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ZariaEcho/dsh-github-workflow
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/31·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 25 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/31) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

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

✗npm 包dsh-github-workflow(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/10 21:29:53

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

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

读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 3 处,展示前 3 条)
  • 读取密钥环境变量
    smoke.mjs:15
    process.env.GITHUB_TOKEN = 'ghp_smoke_test_token'
  • 删除本地文件
    smoke.mjs:821
    rmSync(cacheFile, { force: true })
  • 删除本地文件
    smoke.mjs:856
    rmSync(cacheFile, { force: true })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-credentials@deepseek-ai/dsh-session@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • Issue分诊
  • 草稿PR生成
  • PR审查与合并
展开完整介绍(134 字)↓

GitHub 深度工作流工具,给 DeepSeek Harness(DSH)智能体用:4 层上下文的 issue 分诊、识别模板的草稿 PR、分级 PR 审查、CI 诊断和 GraphQL 合并——全部走故障关闭式变更防护(只读 / 审批 / token 权限范围)。

README

由 DeepSeek 最新模型翻译生成
dsh-github-workflow 把 GitHub 从「API 调用」升级成「懂开发流程的业务工具」——让 DeepSeek Harness 的 Coding Agent 真正闭环完成 Issue → 分析 → 写代码 → 草稿 PR → CI → Review → 合并 → 发布 的全流程。 · TypeScript · 12 个工具 · 零运行时依赖(仅宿主 peer) 为什么做这个 通用 GitHub API 工具只会「执行请求」:拉个 issue、贴个评论。但一个合格的 Coding Agent 需要的是流程能力——拿到一个 Issue 后,它要知道: - 这个问题之前有没有人提过、有没有历史 PR 试过?(查重) - 改动涉及哪些代码、仓库有哪些治理规则?(上下文) - PR 描述怎么符合仓库规范、怎么自动关联 Issue?(流程) - 合并前 CI 过了吗?评论线程回了没?(闭环) dsh-github-workflow 把这套流程知识固化成 12 个垂直工具:每个工具输出结构化、可直接行动的产物(分析脚手架、按严重程度分级的 Review、由真实 diff 推导的 PR 描述),而不是裸 JSON。
展开完整文档(README 剩余 1 节)
dsh-github-workflow

把 GitHub 从「API 调用」升级成「懂开发流程的业务工具」——让 DeepSeek Harness 的 Coding Agent 真正闭环完成 Issue → 分析 → 写代码 → 草稿 PR → CI → Review → 合并 → 发布 的全流程。

· TypeScript · 12 个工具 · 零运行时依赖(仅宿主 peer)

为什么做这个

通用 GitHub API 工具只会「执行请求」:拉个 issue、贴个评论。但一个合格的 Coding Agent 需要的是流程能力——拿到一个 Issue 后,它要知道:

- 这个问题之前有没有人提过、有没有历史 PR 试过?(查重)
- 改动涉及哪些代码、仓库有哪些治理规则?(上下文)
- PR 描述怎么符合仓库规范、怎么自动关联 Issue?(流程)
- 合并前 CI 过了吗?评论线程回了没?(闭环)

dsh-github-workflow 把这套流程知识固化成 12 个垂直工具:每个工具输出结构化、可直接行动的产物(分析脚手架、按严重程度分级的 Review、由真实 diff 推导的 PR 描述),而不是裸 JSON。

差异化点

1. 更懂上下文:gh_analyze_issue 一次拉取四层上下文——关联 PR、历史 PR、类似 Issue(关键词自动提取,支持中文短语回退)、代码引用(正文标识符 code search)。
2. 结构化输出:Review 按 阻断 / 建议 / 优化 三级组织(附评论线程的 GraphQL 线程视图),而不是散乱评论。
3. 流程友好:gh_create_draft_pr 自动携带规范模板(检测仓库 pull_request_template.md)+ 关联 Issue(Closes #N)+ 真实 diff 推导的 Changes/Commits/Test plan。
4. 可追踪:每次写操作的成功与拒绝都以结构化事件写入所属 session 的 append-only 日志——整个工作流可从会话历史审计。

工具一览

| 工具 | 方向 | 作用 |
| gh_get_repo_context | 读 | 仓库全景:默认分支、近期提交、开放 PR/Issue、CODEOWNERS、分支保护 |
| gh_analyze_issue | 读 | 四维分析脚手架(问题理解/影响范围/实现建议/潜在风险)+ 四层上下文 |
| gh_search_related | 读 | 开工前查重:重复 Issue、历史尝试(可限定仓库) |
| gh_create_draft_pr | 写 | 带规范模板与 Closes #N 的草稿 PR,标题/正文从 Issue 或真实 diff 推导 |
| gh_check_ci_status | 读 | CI 全景:combined status + check runs + 失败项 annotations |
| gh_review_pr | 读/写 | 阻断/建议/优化三级 Review + 既有评论线程;post: true 提交 |
| gh_request_reviewers | 写 | 请求 reviewers(用户 + 团队) |
| gh_reply_comment | 写 | 评论回复闭环,可一并 resolve 线程(GraphQL) |
| gh_generate_release_notes | 读 | 从两个 ref/tag 间的合并 PR 生成 changelog 草稿 |
| gh_merge_pr | 写 | GraphQL 合并(squash/merge/rebase),markReady: true 一键转 ready,可选删 head 分支 |
| gh_close_issue | 写 | 关闭 Issue/PR(带 state reason) |
| gh_delete_branch | 写 | 删除分支(拒绝默认分支与有开放 PR 的分支) |

快速开始

一条命令安装并挂载(推荐):

export GITHUB_TOKEN=ghp_xxx # 认证(经宿主 credentials 缝逐次解析)
dsh plugin --profile web add dsh-github-workflow

包内自带 dsh.bundle.patch(见 cordis.patch.yml),CLI 会把它作为 bundle 层激活——不需要手改 profile 文件。装完可用 dsh --profile web --dump-config 验证挂载。

从源码安装(开发用):

git clone https://github.com/ZariaEcho/dsh-github-workflow && cd dsh-github-workflow
npm install && npm run build
dsh plugin --profile web add .

手动挂载(写进 host composition 或 agent preset):

- id: github-workflow
name: dsh-github-workflow
config:
requireApprovalForMutations: true # 写操作默认需用户确认

⚠️ 改走 bundle 通道后,请删掉 profile 里手写的这一行,否则会重复挂载。
本地测试组合见 examples/cordis.yml(dsh --profile --patch ./examples/cordis.yml)。

版本兼容(重要)

peerDependencies 对 @deepseek-ai/dsh-* 声明为 ^0.1.0-rc.1 || ^0.2.0-rc.1。

DSH 在导入插件前,会用 semver.satisfies(runtimeVersion, range, { includePrerelease: true }) 把每一个声明的 DSH peer 范围与运行时版本逐一比对;只要有一个不匹配,该行就被静默禁用(变成 disabled: true,用户看到的现象是"装了但工具没出现")。
坑在于 ^0.1.0-rc.0 的上界是 <0.2.0——装不下运行时 0.2.0-rc.2。这是 0.1.x → 0.2.x 过渡期最常见的翻车点:插件在 0.1.x 上一切正常,升级 harness 后就无声失效。这里显式并列两条版本线,同时覆盖 0.1.x-rc 与 0.2.x-rc。

典型流程

1. gh_get_repo_context 熟悉仓库(含 CODEOWNERS/分支保护)
2. gh_analyze_issue #N 深度分析(四维脚手架 + 相关上下文)
3. gh_search_related 开工前查重
4. (用文件/shell 工具实现)
5. gh_create_draft_pr 带模板 + Closes #N 的草稿 PR
6. gh_check_ci_status 盯 CI(失败项带 annotations)
7. gh_review_pr → post:true 分级审查并提交
8. gh_reply_comment 回评论线程(可 resolve)
9. gh_merge_pr markReady:true 转 ready 并合并(可删 head 分支)
10. gh_close_issue / gh_generate_release_notes 收尾与发布

安全设计(fail-closed)

所有写操作(7 个工具)收敛在单一权限闸口,按序检查:

1. 只读模式:readOnly: true 时全部写操作拒绝
2. 默认需用户确认:经宿主 approval 服务提问,非 allowed-once 一律拒绝(无 approval 服务 / 无 agent 上下文 / 策略 never 均 fail-closed)
3. Token 权限范围可配置:requiredTokenScopes 每次写操作前校验,无法验证的 token(fine-grained PAT)同样拒绝

每一次被拒的操作都会写入 session log(outcome: denied + 原因),审计可见。

真实环境验证

不是纸上谈兵:三个验证脚本全绿——stub 冒烟 89 项(离线可跑)+ 真实网络读验证(octocat/Hello-World)+ 真实网络写验证(一次性私有仓库跑全部 7 个写工具闭环,自动清理)。

真实验证还揪出了三个 GitHub「文档与实现打架」的行为,已修复进代码:

- REST POST /pulls/{n}/merge 对 OAuth token 返回 404(gh api 同现象)→ 合并走 GraphQL mergePullRequest
- REST PATCH {draft: false} 被静默忽略(200 但状态不变)→ 转 ready 用 GraphQL markPullRequestReadyForReview,封装为 markReady 参数
- 线程 resolve 的正确 mutation 是 resolveReviewThread(文档里常见的 updatePullRequestReviewThread 不存在)

配置项

| 配置 | 默认 | 说明 |
| apiTokenEnv | GITHUB_TOKEN | token 的环境变量引用名(经 credentials 缝解析) |
| baseUrl | https://api.github.com | REST/GraphQL 基址;GitHub Enterprise Server 可覆盖 |
| timeoutMs | 60000 | 单请求超时 |
| readOnly | false | 只读模式 |
| requireApprovalForMutations | true | 写操作默认经 approval 服务确认 |
| requiredTokenScopes | [] | 写操作要求的 token 权限范围 |
| contextCacheTtlMs | 3600000 | 治理数据(CODEOWNERS/分支保护/PR 模板)缓存 TTL |
| contextCachePath | '' | 缓存持久化 JSON 文件(跨进程复用,按配置命名空间隔离) |

项目结构

src/
├── index.ts # 插件入口:注册 12 工具 + prompt section ├── config.ts # schemastery 配置定义 ├── github-client.ts # fetch 封装(REST + GraphQL + 分页 + 限流提示) ├── types.ts # GitHub API 类型定义(与传输层解耦) ├── tools/ # 12 个工具模块 └── utils/ ├── permission.ts # 唯一写操作闸口(readOnly → approval → scopes) ├── trace.ts # 会话级追踪事件(github-workflow/operation) ├── cache.ts # 命名空间化的治理缓存(可持久化) └── format.ts # 确定性文本渲染 examples/ ├── cordis.yml # 本地测试组合 ├── live-smoke.mjs # 真实网络读验证(匿名可跑) └── live-write-smoke.mjs # 真实网络写验证(一次性仓库,自动清理)

开发与测试

npm run typecheck # tsc --noEmit
npm test # stub 冒烟(离线)
node examples/live-smoke.mjs # 真实网络只读
GITHUB_TOKEN=$(gh auth token) node examples/live-write-smoke.mjs # 真实写闭环

Roadmap

- PR 模板占位符自动填充({{...}} 推导)
- 组织级多仓库策略感知(批量操作、全局 CODEOWNERS 规则)
- webhook 驱动的状态跟踪(需常驻服务,当前以轮询等效)

License

MIT
预览分享卡片长什么样 ↓ZariaEcho/dsh-github-workflow
分享 · DeepSeek Harness Hub
ZariaEcho/dsh-github-workflow

打通 Issue 到合并的完整开发闭环

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