证据快照复核于 2026-09-10GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundle集成与连接Web Profile

dsh-github

用于 GitHub 拉取请求、议题、审查和 CI 工作流的 DeepSeek Harness 插件包。

快速了解

它能做什么

用于 GitHub 拉取请求、议题、审查和 CI 工作流的 DeepSeek Harness 插件包。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

使用场景
集成与连接集成代码审查git-workflows
适配技术
deepseek-harnessgithubgithub-actions
兼容性

Web Profile
0.1.2-rc.1, 0.1.5-rc.1

可信度与状态

证据已验证
核对日期 2026/9/10 UTC 14:02

有代码证据的贡献

它为 DSH 增加什么

GitHub PR、议题与 CI 工具

提供 GitHub 读取、PR 审查、议题和 CI 功能;声明中的 GitHub 写入会使用宿主的审批流程。

机制证据

选择前先看

将此插件包装入 DeepSeek Harness 配置档后,可获得读取仓库、审查拉取请求、处理议题和运行 CI 审查工作流的 GitHub 工具。它还声明了复合 Action CI 功能、轮询审查机器人和 PR 状态检查门禁。

适合谁

需要在 GitHub 仓库中使用 DeepSeek Harness 协助进行 PR 审查、议题处理或 CI 反馈的用户。

常见任务

  • 查看拉取请求的元数据、受限长度的差异、评论和检查结果。
  • 在宿主审批后创建、更新或合并拉取请求。
  • 创建、评论、关闭和搜索 GitHub 议题。
  • 默认运行确定性的静态审查;在宿主具备所需子代理接口和提供商时配置模型审查。

权限与数据

该插件包声明需要出站网络和文件系统写入权限,并通过配置的来源获取 GitHub 凭据。

权限
  • network:outbound
  • filesystem:write
数据处理
  • README 声明审查任务报告仅保存在进程内存中,不会持久写入磁盘。
  • README 描述凭据会按操作解析,并通过 Authorization 请求头发送给 GitHub。
外部服务
  • GitHub REST 和 GraphQL API
  • GitHub Actions / 复合 Action CI 功能
凭据
  • GitHub 令牌可来自 Harness 凭据接口、环境变量或 gh CLI;默认引用为 GITHUB_TOKEN。

局限

  • 声明的默认审查模式是确定性的静态分析器;模型审查需要宿主提供 subagents 接口和已注册的提供商。
  • 审查任务记录只存在于进程内且数量受限,已结束的旧记录可能被清除。
  • 该包包含 prepare 生命周期脚本。
  • 本记录未独立执行或审计实际运行行为、安装结果及仓库中的安全声明。

DSHub 已核对

  • 已捕获固定 Git 提交、包清单和插件包补丁,且其结构已验证。
  • 清单中存在版本 0.7.9、Apache-2.0 许可证、Node 要求、声明的权限和声明的 Harness 版本。

DSHub 未核对

  • 未验证在用户配置档中的实际安装成功。
  • 未验证实际 GitHub API 访问、凭据处理、审批执行、CI 运行和审查质量。

固定版本安装

安装 dsh-github

这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。

访问源码项目

维护者原文

项目 README

查看 commit 370bb98 对应的 README
维护者编写的上游内容原文于 2026/9/10README.md 获取,正文和仓库相对媒体固定到 commit 370bb9888cf0,内容哈希为 6a77a474a31c。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。
<div align="center">

dsh-github

Gitee

GitHub PRs, reviews, issues, and CI for DeepSeek Harness — every write gated by human approval, token never logged.

Create, review, merge, and search GitHub from the agent, with a CI composite action, polling review bot, and status-check gate.

Official repository. This is the only official repository of dsh-github, maintained by PerryLink. Same-name repositories under other accounts are not affiliated.

License DSH plugin dsh-doctor Node CI Version npm version

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add @perrylink/dsh-github (counts toward the deepseek1024.com install ranking). npm downloads

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

</div>

📚 Table of contents

Compatibility

Surface Status
Harness DeepSeek Harness dsh-v0.1.5-rc.1 (compat declared for 0.1.5-rc.1) 0.1.2-rc.1 (adapted 2026-09-09): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. Verified 2026-09-10 against the dsh-v0.1.5-rc.1 master checkout (full gate chain + profile install smoke).
Node ^22.19.0 || >=24.0.0
Platforms All (host plugin; outbound network to GitHub)
Model Any (static review is deterministic; reviewMode: "model" is optional)

What you get

dsh-github fills the GitHub gap between dsh and tools like Claude Code and Codex: your agent can read, review, open, update, and merge pull requests, read repository metadata and files, comment on and close issues, and search — while a human approves every write and the token stays secret.

  • 14 toolspr_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, all canonical JSON via defineTool.
  • 3 command families/pr create, /review (start/stop/post), /issue open.
  • Full PR lifecycle — create → review → update (title/body/state/base) → merge (merge/squash/rebase, optional head-branch delete).
  • Inline reviewsreview_post posts one summary comment or line-anchored review comments against the PR head commit.
  • Approval-gated writes — every GitHub write goes through ctx.approval (default ask, fail-closed); approval reasons preview titles, body sizes, and comment overrides.
  • Token secrecy — credentials seam → environment → gh CLI, resolved per operation, never in logs, events, renders, or errors.
  • Background review jobs/review runs on ctx.jobs with the host's own job_list / job_output / job_kill surface.
  • Resilience — 429 retry with Retry-After/x-ratelimit-reset backoff; read tools are concurrency-safe; all calls honor cancellation.
  • CI surface — the one-shot ci_run tool, a polling review bot, and a status-check gate (composite action action.yml).

Quick start

# 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'

Install & uninstall

  • git channel (latest main): dsh plugin --profile web add "github:PerryLink/dsh-github#main" — the prepare script builds with production dependencies only.
  • npm channel (published releases): dsh plugin --profile web add @perrylink/dsh-github.
  • tarball channel: pnpm pack in this repo, then dsh plugin --profile web add ./dsh-github-<version>.tgz.
  • uninstall: dsh plugin --profile web remove dsh-github (or remove the row from the profile patch).

Configuration

All tunables are Schemastery Config fields (changeable from cordis.yml). An id-targeted override replaces the whole row — restate every key you need. cordis.patch.yml documents each key inline.

Key Default Meaning
tokenSource auto auto (credentials → env → gh) or one of credentials / env / gh
tokenRef GITHUB_TOKEN Credential-seam reference / environment-variable name
defaultOwnerRepo Fallback owner/repo when a call names none and git has no origin
autoCommit false Whether /pr create may instruct the model to commit+push first
maxDiffChars 8000 Character cap for PR diffs read into reviews
renderExcerptChars 2000 Character cap for the diff excerpt rendered into tool output
maxComments 20 Cap for PR comments listed by gh_review
reviewJobTimeoutMs 600000 Deadline for one background review job (fails with timeout)
maxReviewRecords 50 Cap for in-memory review-job records; oldest settled records evict first
maxFileChars 12000 Character cap for file contents read by gh_file
maxFindings 50 Cap for analyzer findings per review
maxLineLength 300 Line length beyond which the analyzer flags a long-line finding
reviewMode static Review engine: static (deterministic analyzer) or model (one-shot subagent through the host's subagents seam; fails loud when the seam is absent)
modelReviewProvider Subagent provider name for reviewMode: "model"; defaults to the first registered provider
maxRetries 3 429 retry attempts per request
retryBaseMs 500 Retry backoff base (doubles per attempt)
retryMaxWaitMs 60000 Retry backoff ceiling
requestTimeoutMs 30000 Hard per-request timeout; aborts the fetch when exceeded
apiBaseUrl https://api.github.com GitHub REST base URL (GitHub Enterprise)
allowedActions ['pr.create','pr.merge','pr.update','review.post','issue.create','issue.comment','issue.close','ci.run'] Write-action whitelist; anything else is denied before approval
workspaceDir process cwd Working directory for read-only git inspection
ci { enabled: false, … } CI integration section: polling review bot, status-check gate, and the one-shot ci_run tool (all ci.* keys live inside it)

Tools & surfaces

Surface Kind Notes
pr_create tool Create a pull request (write; approval-gated)
pr_merge tool Merge a PR (merge/squash/rebase, optional head-branch delete)
pr_update tool Update a PR (title/body/state/base)
gh_review tool Read a PR: metadata, capped diff, comments, CI, static findings
review_post tool Publish a review comment (summary or line-anchored inline)
gh_issue tool List / get / comment on issues (PRs marked kind: "pr")
issue_open tool Create an issue
issue_comment tool Comment on an issue or PR
issue_close tool Close an issue (optional state reason)
gh_search tool Search issues and PRs (separate search quota)
gh_repo tool Read repository metadata
gh_file tool Read one file at a branch/tag/commit
gh_repo_search tool GraphQL repository search (separate search quota)
gh_checks tool GraphQL PR status checks (check runs + commit statuses)
/pr create command Read git state and queue a pr_create instruction
/review command Start / stop / post a background review job
/issue open command Queue an issue_open instruction
ci_run tool One-shot CI review run by the composite action / CI driver
review bot surface Polling review bot with idempotent inline comments (ci.*)
status-check gate surface Publishes the success / needs-changes verdict per PR head commit (action.yml)

Architecture

  • Credential seam. tokenSource: auto resolves per operation in the order credentials seam (GITHUB_TOKEN reference) → environment variable → gh CLI token. The value is a local variable handed to the REST client; it never enters canonical values, renders, cards, command outputs, injected notices, job output, approval reasons, or error messages.
  • Approval gate. All writes flow through model tools. A tools/pre-execute waterfall listener returns ask for the write tools, so the registry asks the human through ctx.approval (the host logs the approval/asked + approval/decided audit pair) and fails closed without an answerer. Commands never write directly: a write command gathers read-only context, then wakes the agent so the model runs the gated tool inside a turn.
  • Background review job. /review <pr> starts a github-review job on ctx.jobs; the job fetches metadata (capturing the head-commit SHA for inline posting), the capped diff, CI checks, and existing comments, then runs the deterministic multi-file analyzer (src/review.ts). With reviewMode: "model", the job hands the capped diff to a one-shot subagent through the host's subagents seam. Completion reaches the session through the host's dsh-tool-jobs consumer; the model reads it with job_output and publishes it with review_post.
  • CI composite action / review bot / status-check gate. The repo ships a composite action (action.yml) that reviews PRs, fixes CI, and writes the report; a polling review bot posts idempotent inline comments; and a status-check gate publishes the verdict per PR head commit. The one-shot ci_run tool drives the headless run. Every write stays approval-gated.

Permissions & data

  • Permissions: writes ride the official approval seam; nothing is re-implemented or bypassed. The plugin declares network:outbound and filesystem:write in its workshop manifest.
  • Data: the review report lives in process memory keyed by job id; nothing durable is written to disk.
  • Session log: the plugin adds no custom session event types; all model-visible content flows through host-logged surfaces (tool/result, user/message, command/run, approval/asked…).

Security boundaries

  • Approval, not enforcement. Writes only produce ask/deny decisions on the official seam; the sandbox and approval systems remain the enforcement authorities.
  • Fail closed. Missing approval answerer degrades to the strictest decision — never to silent pass-through.
  • The token never leaves the process. It is read per operation and sent only in the Authorization header; never logged, rendered, injected, or surfaced in errors.
  • No writes outside approval. /pr create never commits or pushes by itself; with autoCommit: true, the model performs those writes through the bash tool's own approval gate. The review job performs no writes; only review_post publishes, after approval.
  • Untrusted content is escaped and marked. formatPostBody backtick- and HTML-escapes diff-derived file names, and external GitHub content (files, bodies, comments, search results) is marked as external in renders.
  • Bounded work and rate limits. 429s are retried with backoff; the remaining quota is surfaced on every result, including failures.

Known limitations

  • No custom session events — deliberate (see Architecture); audit trails rely on the host's own event vocabulary.
  • Static analyzer by default — deterministic rules (src/review.ts), zero tokens, reproducible. reviewMode: "model" costs tokens and requires the subagents seam and a registered provider.
  • Jobs and records are process-local — the review report lives in plugin memory keyed by job id; the record map is capped by maxReviewRecords (oldest settled records evict first).
  • npm latest dist-tags are stale — install through the profile closure dsh-base provides; never bare npm i @deepseek-ai/dsh-tools.

Development

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

Repository layout

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 background job producer (metadata + diff + CI + comments)
src/approval-gate.ts  tools/pre-execute ask/deny gate with write previews
src/tools.ts          the fourteen model-facing tools
src/commands.ts       /pr, /review, /issue
src/present.ts        pure UI-card presenters
test/                 vitest suite + mock host scaffolding + opt-in e2e smoke
cordis.patch.yml      bundle patch (one insert row)
scripts/prepare.mjs   self-contained git-install build

Topics

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

Contributors

  • @PerryLink — creator and maintainer: the GitHub tool surface, approval gate, background review jobs, CI composite action, review bot, status-check gate, and the five-language docs.
  • @AraragiEro — the GitHub token settings card in the Plugins settings page (#6).
  • @alexchenzl — invited the plugin onto the DSH Directory (#5).

PerryLink DSH Plugin Family

This project is one of the 37 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

Plugin One-liner
dsh-auto-review Second-model auto-review on the approval chain, fail-closed by default
dsh-background-agents Durable background child agents with a Web UI sidebar, messaging and interrupt
dsh-budget Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel.
dsh-checkpoint-rewind Claude Code /rewind-equivalent: snapshots, session forks, one-shot restore
dsh-claude-move Migrate Claude Code sessions, memory, skills and CLAUDE.md into DSH
dsh-click Cross-platform native desktop control for DeepSeek Harness — Windows first.
dsh-composer-history Terminal-style input history for the web composer: arrows, Ctrl+R search
dsh-data-quality Dataset quality checks and citation cross-checks (the optional numeric bridge consumed here)
dsh-defend Prompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness.
dsh-doublecheck Engineering-discipline guard: requirements grill, test gates, adversary review
dsh-draw Unified static-image generation routing for DeepSeek Harness.
dsh-fast Read-only performance diagnostics for DeepSeek Harness.
dsh-fund-research Deterministic research reports for Chinese public mutual funds
dsh-industry-research Industry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble
dsh-library Local document knowledge base for DeepSeek Harness.
dsh-local-ai Local-model (Ollama) integration for DeepSeek Harness.
dsh-lsp-actions LSP diagnostics, formatting, completion, code actions and rename over language servers
dsh-mask PII masking middleware: anonymize at the model boundary, restore at the display layer
dsh-mcp-panel Read-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors
dsh-memento Approval-gated cross-session memory: ctx.memory seam + SQLite + memory tool
dsh-observe OpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
dsh-output-styles Claude Code outputStyles-equivalent runtime style switching
dsh-permission-rules Claude Code-style declarative allow/deny/ask permission rules with audit
dsh-personal-directive Personal directive injector with top-bar toggle (framework edition)
dsh-plugin-guide Plugin-development knowledge base as an on-demand agent skill
dsh-reach Multi-channel approval/question bridge: WeChat/Telegram/Feishu, session console
dsh-research-report Verifiable research-report engine: content-addressed evidence ledger and sealed versions
dsh-score Multi-dimensional quality scoring for DeepSeek Harness plugins.
dsh-session-pin Pin sessions in the Web sidebar with durable ordering
dsh-session-sync Cross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store.
dsh-skill-pack-security Security-audit skill pack: secret scan, dependency and supply-chain review
dsh-talk Voice-first session loop for DeepSeek Harness: talk to it, hear it answer.
dsh-test-drive Isolated install-and-smoke test drives for DeepSeek Harness plugins.
dsh-ticktick TickTick/Dida365 task bridge: session-header panel + 11 tools
dsh-translate Vendor parameter translation and deterministic JSON repair for DeepSeek Harness.
dsh-wechat WeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

License

Apache License 2.0 © 2026 dsh-github contributors

有意识地管理

安装与管理

前置条件与目标 Profile

目标 Web Profile

交付方式 Git Bundle — PerryLink/dsh-github#370bb9888cf07458c053b50c5285bdfceeb5739d

验证、更新与移除

显示生命周期命令
验证
dsh plugin --profile web list

兼容性与访问范围

Declared for DeepSeek Harness 0.1.2-rc.1 and 0.1.5-rc.1 0.1.2-rc.1, 0.1.5-rc.1

检查兼容性证据

风险事实

permissions

Declares outbound network and filesystem-write permissions.

证据
external-service

Connects to GitHub and may perform PR, issue, review-comment, and status-check writes after approval.

证据
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

请使用权限范围合适的 GitHub 令牌,并在允许任何写入前检查审批提示。

AI 审查于 2026/9/10 UTC 14:03GitHub 事实核对日期: 2026/9/10 UTC 14:03

自当前证据基线以来,没有记录到重要源码变化。

下一步

按 Plugin 安装流程操作

订阅重要变化: dsh-github