PerryLink/dsh-github ↗★ 19

@perrylink/dsh-github

Official-grade GitHub CI for DeepSeek Harness: composite action (review PRs / fix CI / report), polling PR review bot with idempotent inline comments, a status-check gate, and approval-gated PR/issue/repo/file tools 适合需要AI自动审查PR、修复CI并提供审批式工具链的GitHub工作流。

Package
@perrylink/dsh-github
Compatibility
Unverified
Harness peer range
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0 || >=0.1.7-0 <0.2.0
Cordis peer range
^4.0.4
Version
0.7.15
License
Apache-2.0
Last updated
Sep 25, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-github

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. In the GUI, the Plugins page settings card (Official group) reads tokenRef from the entry's own configuration form — the 0.1.7-alpha.1 host removed the ctx.settingsScope binding and the namespace-registration seam behind it, so the card no longer owns a settings namespace. The GitHub token is not a configuration field at all: the card reports whether the referenced credential is set and writes it through the credentials file, which is where the host half resolves it.

KeyDefaultMeaning
tokenSourceautoauto (credentials → env → gh) or one of credentials / env / gh
tokenRefGITHUB_TOKENCredential-seam reference / environment-variable name
defaultOwnerRepo—Fallback owner/repo when a call names none and git has no origin
autoCommitfalseWhether /pr create may instruct the model to commit+push first
maxDiffChars8000Character cap for PR diffs read into reviews
renderExcerptChars2000Character cap for the diff excerpt rendered into tool output
maxComments20Cap for PR comments listed by gh_review
reviewJobTimeoutMs600000Deadline for one background review job (fails with timeout)
maxReviewRecords50Cap for in-memory review-job records; oldest settled records evict first
maxFileChars12000Character cap for file contents read by gh_file
maxFindings50Cap for analyzer findings per review
maxLineLength300Line length beyond which the analyzer flags a long-line finding
reviewModestaticReview 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
maxRetries3429 retry attempts per request
retryBaseMs500Retry backoff base (doubles per attempt)
retryMaxWaitMs60000Retry backoff ceiling
requestTimeoutMs30000Hard per-request timeout; aborts the fetch when exceeded
apiBaseUrlhttps://api.github.comGitHub 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
workspaceDirprocess cwdWorking 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)