DeepSeek Harness Hub
← 返回列表

PerryLink/dsh-github

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
⚠ 装前注意

面向 DeepSeek Harness 的 GitHub PR、评审、issue 与 CI ——…

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/12 · 已提供中文文档

面向 DeepSeek Harness 的官方级 GitHub CI:复合 action.yml、带幂等行内评论和状态检查门禁的 PR 审查机器人,以及所有写入操作均需人工批准的 PR/issues 工具(Apache-2.0,dsh-plugin)。

综合分
39.7
GitHub 分
39.7
用户评分
★ Stars
12
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add PerryLink/dsh-github
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

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

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

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 16:26:33

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-util-values@deepseek-ai/dsh-attachment@deepseek-ai/cordis@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-credentials@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-settings@deepseek-ai/dsh-tools@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-github
Gitee

面向 DeepSeek Harness 的 GitHub PR、评审、issue 与 CI —— 每次写入都需人工批准,令牌绝不记录日志。

在 agent 中创建、评审、合并和搜索 GitHub,配备 CI 复合 action、轮询评审机器人和状态检查门禁。

官方仓库。 这是 dsh-github 唯一的官方仓库,由 PerryLink 维护。其他账号下的同名仓库均无关联。

License
DSH plugin
dsh-doctor
Node
CI
Version
npm version
- 1024 store channel:先执行一次 npm i -g dsh1024,然后执行 dsh1024 plugin --profile web add @perrylink/dsh-github(计入 deepseek1024.com 安装排名)。
npm downloads

English · 简体中文 · Español · Português · हिन्दी

📚 目录

- 兼容性
- 你将获得什么
- 快速开始
- 安装与卸载
- 配置
- 工具与界面
- 架构
- 权限与数据
- 安全边界
- 已知限制
- 开发
- 仓库结构
- 主题
- 贡献者
- PerryLink DSH 插件家族
- 许可证

兼容性

| 界面 | 状态 |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.5-rc.2(兼容性声明为 >=0.1.2-rc.1 =0.1.5-alpha.1 =24.0.0 |
| Platforms | 全部(宿主插件;出站网络访问 GitHub) |
| Model | 任意(静态审查是确定性的;reviewMode: "model" 为可选) |

你将获得

dsh-github 填补了 dsh 与 Claude Code、Codex 等工具之间的 GitHub 空白:你的智能体可以读取、审查、打开、更新和合并拉取请求,读取仓库元数据和文件,评论和关闭议题,以及搜索——同时每一次写入都需人工批准,令牌始终保持机密。

- 15 个工具 —— pr_create、pr_merge、pr_update、gh_review、review_post、gh_issue、issue_open、issue_comment、issue_close、gh_search、gh_repo、gh_file、gh_repo_search、gh_checks,全部通过 defineTool 提供规范 JSON,另外在 ci.enabled 开启时提供一次性 ci_run。
- 4 个命令族 —— /pr create、/review(start/stop/post)、/issue open 和 /ci(scan/status/start/stop/run ,在 ci.enabled 下注册)。
- 完整 PR 生命周期 —— 创建 → 审查 → 更新(标题/正文/状态/基础分支)→ 合并(merge/squash/rebase,可选删除头分支)。
- 行内审查 —— review_post 针对 PR 头提交发布一条摘要评论或按行锚定的审查评论。
- 审批门控写入 —— 每一次 GitHub 写入都经过 ctx.approval(默认 ask,失败即关闭);审批理由会预览标题、正文大小和评论覆盖。
- 令牌保密 —— 凭据接缝 → 环境 → gh CLI,按操作解析,绝不出现在日志、事件、渲染或错误中。
- 后台审查任务 —— /review 运行在 ctx.jobs 上,使用宿主自有的 job_list / job_output / job_kill 接口。
- 弹性 —— 429 重试,使用 Retry-After/x-ratelimit-reset 退避;读取工具并发安全;所有调用都遵循取消。
- CI 接口 —— 一次性 ci_run 工具、轮询审查机器人和状态检查门控(复合操作 action.yml)。

快速开始

1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-github#main"

or from npm (published releases)
dsh plugin --profile web add @perrylink/dsh-github

2. restart and verify the row
dsh --profile web --dump-config | grep -A3 'id: dsh-github'

安装与卸载

- git 渠道(最新 main):dsh plugin --profile web add "github:PerryLink/dsh-github#main" —— prepare 脚本仅使用生产依赖进行构建。
- npm 渠道(已发布版本):dsh plugin --profile web add @perrylink/dsh-github。
- tarball 渠道:在本仓库中运行 pnpm pack,然后运行 dsh plugin --profile web add ./perrylink-dsh-github-.tgz。
- 卸载:dsh plugin --profile web remove @perrylink/dsh-github(或从 profile 补丁中移除该行)。

配置

所有可调项都是 Schemastery Config 字段(可从 cordis.yml 更改)。以 id 为目标的覆盖会替换整行——请重新声明你需要的每个键。cordis.patch.yml 以内联方式记录了每个键。
| 键 | 默认值 | 含义 |
|---|---|---|
| tokenSource | auto | auto(凭据 → 环境变量 → gh)或 credentials / env / gh 之一 |
| tokenRef | GITHUB_TOKEN | 凭据接缝引用 / 环境变量名 |
| defaultOwnerRepo | — | 当调用未指定且 git 没有 origin 时的回退 owner/repo |
| autoCommit | false | /pr create 是否可以指示模型先提交并推送 |
| maxDiffChars | 8000 | 读入审查的 PR diff 字符上限 |
| renderExcerptChars | 2000 | 渲染到工具输出中的 diff 摘录字符上限 |
| maxComments | 20 | gh_review 列出的 PR 评论上限 |
| reviewJobTimeoutMs | 600000 | 单个后台审查任务的截止时间(超时则以 timeout 失败) |
| maxReviewRecords | 50 | 内存中审查任务记录的上限;最早完成的记录先被淘汰 |
| maxFileChars | 12000 | gh_file 读取的文件内容字符上限 |
| maxFindings | 50 | 每次审查的分析器发现项上限 |
| maxLineLength | 300 | 超过此长度时分析器标记为长行发现项 |
| reviewMode | static | 审查引擎:static(确定性分析器)或 model(通过宿主的 subagents 接缝进行一次性子代理;接缝缺失时大声失败) |
| modelReviewProvider | — | reviewMode: "model" 的子代理提供者名称;默认为第一个注册的提供者 |
| maxRetries | 3 | 每个请求的 429 重试次数 |
| retryBaseMs | 500 | 重试退避基数(每次尝试翻倍) |
| retryMaxWaitMs | 60000 | 重试退避上限 |
| requestTimeoutMs | 30000 | 每个请求的硬超时;超过时中止 fetch |
| apiBaseUrl | https://api.github.com | GitHub REST 基础 URL(GitHub Enterprise) |
| allowedActions | ['pr.create','pr.merge','pr.update','review.post','issue.create','issue.comment','issue.close','ci.run'] | 写操作白名单;其他任何操作在批准前即被拒绝 |
| workspaceDir | 进程 cwd | 用于只读 git 检查的工作目录 |
| ci | { enabled: false, … } | CI 集成部分:轮询审查机器人、状态检查门禁,以及一次性 ci_run 工具(所有 ci. 键都在其中) |

工具与界面

| 界面 | 类型 | 说明 |
|---|---|---|
| pr_create | 工具 | 创建拉取请求(写操作;需批准) |
| pr_merge | 工具 | 合并 PR(merge/squash/rebase,可选删除头分支) |
| pr_update | 工具 | 更新 PR(标题/正文/状态/基础分支) |
| gh_review | 工具 | 读取 PR:元数据、有上限的 diff、评论、CI、静态发现项 |
| review_post | 工具 | 发布审查评论(摘要或行锚定内联) |
| gh_issue | 工具 | 列出 / 获取 / 评论 issue(标记为 kind: "pr" 的 PR) |
| issue_open | 工具 | 创建 issue |
| issue_comment | 工具 | 评论 issue 或 PR |
| issue_close | 工具 | 关闭 issue(可选状态原因) |
| gh_search | 工具 | 搜索 issue 和 PR(独立搜索配额) |
| gh_repo | 工具 | 读取仓库元数据 |
| gh_file | 工具 | 读取某个分支/标签/提交上的单个文件 |
| gh_repo_search | 工具 | GraphQL 仓库搜索(独立搜索配额) |
| gh_checks | 工具 | GraphQL PR 状态检查(检查运行 + 提交状态) |
| /pr create | 命令 | 读取 git 状态并排队一条 pr_create 指令 |
| /review | 命令 | 启动 / 停止 / 发布后台审查任务 |
| /issue open | 命令 | 排队一条 issue_open 指令 |
| ci_run | 工具 | 由复合 action / CI 驱动执行的一次性 CI 审查运行 |
| review bot | 界面 | 带幂等行内评论的轮询审查机器人(ci.) |
| status-check gate | 界面 | 按每个 PR 头部提交发布 success / needs-changes 判定(action.yml) |

架构

- 凭据接缝。 tokenSource: auto 按操作解析,顺序为凭据接缝(GITHUB_TOKEN 引用)→ 环境变量 → gh CLI 令牌。该值是一个交给 REST 客户端的局部变量;它绝不会进入规范值、渲染、卡片、命令输出、注入通知、任务输出、审批理由或错误消息。
- 审批门。 所有写入都流经模型工具。一个 tools/pre-execute 瀑布监听器对写入工具返回 ask,因此注册表通过 ctx.approval 询问人类(宿主记录 approval/asked + approval/decided 审计对),并且在无应答者时故障关闭。命令从不直接写入:写入命令收集只读上下文,然后唤醒代理,使模型在一轮对话内运行受门控的工具。
- 后台审查任务。 /review  在 ctx.jobs 上启动一个 github-review 任务;该任务获取元数据(捕获头部提交 SHA 用于行内发布)、有上限的 diff、CI 检查以及现有评论,然后运行确定性的多文件分析器(src/review.ts)。在 reviewMode: "model" 下,该任务通过宿主的 subagents 接缝将有上限的 diff 交给一次性子代理。完成结果通过宿主的 dsh-tool-jobs 消费者到达会话;模型用 job_output 读取它,并用 review_post 发布它。
- CI 复合 action / 审查机器人 / 状态检查门。 该仓库附带一个复合 action(action.yml),用于审查 PR、修复 CI 并写入报告;一个轮询审查机器人发布幂等行内评论;一个状态检查门按每个 PR 头部提交发布判定。一次性 ci_run 工具驱动无头运行。每次写入都保持审批门控。

权限与数据

- 权限:写入遵循官方审批接缝;没有任何东西被重新实现或绕过。该插件在其 workshop 清单中声明了 network:outbound 和 filesystem:write。
- 数据:审查报告保存在按任务 id 键控的进程内存中;不会向磁盘写入任何持久内容。
- 会话日志:该插件不添加自定义会话事件类型;所有模型可见内容都通过宿主记录的表面流转(tool/result、user/message、command/run、approval/asked……)。

安全边界

- 审批,而非强制执行。 写入仅在官方接缝上产生 ask/拒绝决策;沙箱和审批系统仍是强制执行权威。
- 故障关闭。 缺少审批应答器时降级为最严格的决策——绝不静默放行。
- 令牌永不离开进程。 每次操作时读取,仅在 Authorization 头中发送;绝不记录、渲染、注入或在错误中暴露。
- 审批之外无写入。 /pr create 自身绝不提交或推送;当 autoCommit: true 时,模型通过 bash 工具自身的审批门执行这些写入。审查作业不执行任何写入;只有 review_post 在审批后发布。
- 不受信任的内容会被转义并标记。 formatPostBody 对源自 diff 的文件名进行反引号和 HTML 转义,外部 GitHub 内容(文件、正文、评论、搜索结果)在渲染中标记为外部内容。
- 有界工作与速率限制。 429 会以退避方式重试;剩余配额会在每个结果中呈现,包括失败时。

已知限制

- 无自定义会话事件——有意为之(见架构);审计追踪依赖宿主自身的事件词汇。
- 默认使用静态分析器——确定性规则(src/review.ts),零令牌,可复现。reviewMode: "model" 消耗令牌,并且需要 subagents 接缝和已注册的提供方。
- 作业和记录是进程本地的——审查报告位于插件内存中,以作业 ID 为键;记录映射受 maxReviewRecords 限制(最早结算的记录先被逐出)。
- npm latest dist-tags 已过时——通过 dsh-base 提供的 profile 闭包安装;切勿直接 npm i @deepseek-ai/dsh-tools。

开发

pnpm install             # node ^22.19 || >=24
pnpm run build           # tsc --noEmitOnError → lib/
pnpm run prepare         # self-contained git-install build (scripts/prepare.mjs)
pnpm run prepublishOnly  # build + test before publishing
pnpm test                # vitest run
pnpm run typecheck       # tsc --noEmit
pnpm run check:readmes   # cross-checks TOC anchors, tools, and config keys in all 5 READMEs

仓库布局

src/index.ts          plugin entry (name/inject/apply, applyWithDeps for tests)
src/config.ts         Schemastery Config
src/types.ts          local structural views of host services + Context merging
src/credential.ts     token resolution (seam → env → gh), per operation
src/github.ts         REST client: 429 retry, rate limits, diff media type
src/git.ts            read-only git inspection + origin parsing for any API host
src/review.ts         deterministic diff analyzer + sanitized comment drafting
src/jobs.ts           github-review 后台任务生产者(元数据 + diff + CI + 评论)
src/approval-gate.ts  tools/pre-execute 询问/拒绝门禁,带写入预览
src/tools.ts          十四个面向模型的工具(外加 src/ci/ 下的 ci_run)
src/commands.ts       /pr、/review、/issue
src/present.ts        纯 UI 卡片展示器
test/                 vitest 测试套件 + mock 宿主脚手架 + 可选加入的 e2e 冒烟测试
cordis.patch.yml      bundle 补丁(一行插入)
scripts/prepare.mjs   自包含的 git-install 构建

主题

dsh · dsh-plugin · deepseek-harness · github · pull-request · code-review · issue-tracker

贡献者

- @PerryLink — 创建者与维护者:GitHub 工具面、审批门禁、后台审查任务、CI 复合操作、审查机器人、状态检查门禁,以及五种语言的文档。
- @AraragiEro — Plugins 设置页面中的 GitHub token 设置卡片(#6)。
- @alexchenzl — 邀请本插件加入 DSH Directory(#5)。

PerryLink DSH 插件家族

本项目是 PerryLink 维护的 40 个 DeepSeek Harness 插件之一。如果这个对你有帮助,其他的很可能也一样:

| 插件 | 一句话简介 |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认失败关闭 | |
| dsh-background-agents | 持久化的后台子代理,带 Web UI 侧边栏、消息传递与中断 | |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排与延迟集于一个面板。 | |
| dsh-checkpoint-rewind | 等同于 Claude Code /rewind:快照、会话分叉、一次性恢复 | |
| dsh-claude-move | 将 Claude Code 会话、记忆、技能与 CLAUDE.md 迁移到 DSH | |
| dsh-click | DeepSeek Harness 的跨平台原生桌面控制——Windows 优先。 | |
| dsh-composer-history | Web 输入框的终端风格输入历史:方向键、Ctrl+R 搜索 | |
| dsh-data-quality | 数据集质量检查与引用交叉核对(此处消费的可选数值桥接) | |
| dsh-defend | DeepSeek Harness 的提示注入、越狱与密钥泄露防御。 | |
| dsh-doublecheck | 工程纪律守卫:需求拷问、测试门禁、对抗式审查 | |
| dsh-draw | 为 DeepSeek Harness 提供统一的静态图像生成路由。 | |
| dsh-fast | 为 DeepSeek Harness 提供只读性能诊断。 | |
| dsh-fund-research | 面向中国公募基金的确定性研究报告 | |
| dsh-industry-research | 行业研究编排,通过本插件的 ctx.researchReport.assemble 封存其交付物 | |
| dsh-library | 面向 DeepSeek Harness 的本地文档知识库。 | |
| dsh-local-ai | 为 DeepSeek Harness 集成本地模型(Ollama)。 | |
| dsh-lsp-actions | 基于语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名 | |
| dsh-mask | PII 脱敏中间件:在模型边界处匿名化,在展示层还原 | |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 设置选项卡,显示状态、工具与错误 | |
| dsh-memento | 需审批的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 | |
| dsh-observe | 为 DeepSeek Harness 提供 OpenTelemetry 与 Langfuse 可观测性导出器。 | |
| dsh-output-styles | 等同于 Claude Code outputStyles 的运行时样式切换 | |
| dsh-permission-rules | Claude Code 风格的声明式 allow/deny/ask 权限规则,带审计 | |
| dsh-personal-directive | 带顶栏开关的个人指令注入器(框架版) | |
| dsh-plugin-guide | 以按需智能体技能形式提供的插件开发知识库 | |
| dsh-plugin-doctor | 面向 DSH 插件的零依赖静态 + 沙箱冒烟检测器 | |
| dsh-reach | 多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台 | |
| dsh-research-report | 可验证的研究报告引擎:内容寻址的证据账本与封存版本 | |
| dsh-score | 面向 DeepSeek Harness 插件的多维度质量评分。 | |
| dsh-session-pin | 在 Web 侧边栏中固定会话,并保持持久排序 | |
| dsh-session-sync | DeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。 | |
| dsh-skill-pack-security | 安全审计技能包:密钥扫描、依赖与供应链审查 | |
| dsh-talk | DeepSeek Harness 的语音优先会话循环:与它对话,听它回答。 | |
| dsh-test-drive | 针对 DeepSeek Harness 插件的隔离式安装与冒烟测试。 | |
| dsh-ticktick | TickTick/滴答清单任务桥接:会话头部面板 + 11 个工具 | |
| dsh-translate | 面向 DeepSeek Harness 的供应商参数转换与确定性 JSON 修复。 | |
| dsh-wechat | 微信 ↔ DSH 桥接(腾讯 iLink 机器人):文本/图片/文件/语音,在聊天中审批 | |
| dsh-autotier | 自动进行强/廉价模型层级路由,具备确定性风险防护和 /tier 命令 | |
| dsh-catalog | PerryLink 系列的 DSH Desktop Market 标准目录源 | |
| dsh-cert-mcp | 只读 MCP 服务器,公开认证注册表:评级、快照和五维证据 | |
| dsh-kit | 一条命令即可安装核心系列的一站式入门包 | |
| dsh-plugin-certification | 社区认证注册表,提供可复现验证的评级和徽章 | |
| dsh-plugin-kit | PerryLink DSH 插件共享的零运行时依赖工具包 | |
| dsh-plugin-portal | 零依赖静态门户,将整个插件系列渲染为一个页面 | |
| dsh-plugin-upgrade-015 | 合并 0.1.3-alpha.1 → 0.1.5-rc.1 升级通道卡片,外加零依赖接缝扫描器 | |
| dsh-team-rooms | 跨会话团队房间:共享消息总线、任务板和时线 | |

从 DSH Desktop Market 安装

所有 PerryLink 插件均可在内置的 DSH Desktop Market 中浏览:Market → Sources → add source → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选择它。安装仍需通过 Market 的 npm 身份验证和你的确认。

许可证

Apache License 2.0 © 2026 dsh-github contributors

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群