dsh-github

September 1, 2026 · View on GitHub

dsh-github

DeepSeek Harness के लिए GitHub के PR, समीक्षाएँ, issues और CI — हर write मानवीय approval से नियंत्रित, token कभी logged नहीं होता।

एजेंट से GitHub पर बनाएँ, समीक्षा करें, merge करें और खोजें — CI composite action, polling review bot और status-check gate के साथ।

License DSH plugin Node CI Version npm version

  • 1024 स्टोर चैनल: एक बार npm i -g dsh1024, फिर dsh1024 plugin --profile web add @perrylink/dsh-github (deepseek1024.com इंस्टॉल रैंकिंग में गिना जाता है)। npm downloads

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


📚 विषय-सूची

अनुकूलता

सतहस्थिति
HarnessDeepSeek Harness 0.1.2-alpha.3 (0.1.2-alpha.3 के लिए compat घोषित) 0.1.2-alpha.3 (2026-09-01 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है।
Node^22.19.0 || >=24.0.0
Platformsसभी (host plugin; GitHub की ओर outbound network)
Modelकोई भी (static review deterministic है; reviewMode: "model" वैकल्पिक है)

आपको क्या मिलता है

dsh-github dsh और Claude Code व Codex जैसे टूल्स के बीच की GitHub कमी को पूरा करता है: आपका एजेंट pull requests पढ़, समीक्षा (review), खोल, update और merge कर सकता है, repository metadata और files पढ़ सकता है, issues पर comment और close कर सकता है, और खोज सकता है — जबकि हर write को एक मानव अनुमोदित (approve) करता है और token गुप्त रहता है।

  • 14 टूल्स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 के ज़रिए canonical JSON।
  • 3 कमांड परिवार/pr create, /review (start/stop/post), /issue open
  • पूरा PR lifecycle — बनाएँ → समीक्षा करें → update करें (title/body/state/base) → merge करें (merge/squash/rebase, वैकल्पिक head-branch deletion)।
  • Inline reviewsreview_post PR head commit के विरुद्ध एक summary comment या line-anchored review comments प्रकाशित करता है।
  • Approval-नियंत्रित writes — हर GitHub write ctx.approval से होकर गुजरता है (डिफ़ॉल्ट ask, fail-closed); approval reasons titles, body sizes और comment overrides की पूर्व-झलक देते हैं।
  • Token गोपनीयता — credentials seam → environment → gh CLI, प्रति operation resolved, कभी logs, events, renders या errors में नहीं।
  • Background review jobs/review ctx.jobs पर host के अपने job_list / job_output / job_kill surface के साथ चलता है।
  • लचीलापनRetry-After/x-ratelimit-reset backoff के साथ 429 retry; read tools concurrency-safe हैं; सभी calls cancellation का सम्मान करते हैं।
  • CI surface — one-shot ci_run tool, एक polling review bot और एक status-check gate (composite action action.yml)।

त्वरित शुरुआत

# 1. bundle को अपने profile में इंस्टॉल करें
dsh plugin --profile web add "github:PerryLink/dsh-github#main"

# या npm से (प्रकाशित रिलीज़)
dsh plugin --profile web add @perrylink/dsh-github

# 2. पुनः आरंभ करें और row को सत्यापित करें
dsh --profile web --dump-config | grep -A3 'id: dsh-github'

स्थापना और अनइंस्टॉल

  • git channel (नवीनतम main): dsh plugin --profile web add "github:PerryLink/dsh-github#main"prepare script केवल production dependencies के साथ build करता है।
  • npm channel (प्रकाशित रिलीज़): dsh plugin --profile web add @perrylink/dsh-github
  • tarball channel: इस repo में pnpm pack चलाएँ, फिर dsh plugin --profile web add ./dsh-github-<version>.tgz
  • अनइंस्टॉल: dsh plugin --profile web remove dsh-github (या profile patch से row हटाएँ)।

कॉन्फ़िगरेशन

सभी tunables Schemastery Config fields हैं (cordis.yml से बदले जा सकते हैं)। एक id-लक्षित override पूरी row को बदल देता है — जो key आपको चाहिए उसे दोबारा लिखें। cordis.patch.yml हर key को inline दस्तावेज़ित करता है।

कुंजीडिफ़ॉल्टअर्थ
tokenSourceautoauto (credentials → env → gh) या credentials / env / gh में से कोई एक
tokenRefGITHUB_TOKENCredential-seam reference / environment-variable नाम
defaultOwnerRepoजब कोई call कोई नाम न दे और git के पास कोई origin न हो तो Fallback owner/repo
autoCommitfalseक्या /pr create model को पहले commit+push करने का निर्देश दे सकता है
maxDiffChars8000reviews में पढ़े जाने वाले PR diffs की character सीमा
renderExcerptChars2000tool output में render किए जाने वाले diff excerpt की character सीमा
maxComments20gh_review द्वारा सूचीबद्ध PR comments की सीमा
reviewJobTimeoutMs600000एक background review job की समय-सीमा (timeout के साथ fail होता है)
maxReviewRecords50in-memory review-job records की सीमा; सबसे पुराने settled records पहले evict होते हैं
maxFileChars12000gh_file द्वारा पढ़े गए file contents की character सीमा
maxFindings50प्रति review analyzer findings की सीमा
maxLineLength300line length जिसके पार analyzer long-line finding flag करता है
reviewModestaticReview engine: static (deterministic analyzer) या model (host के subagents seam के ज़रिए one-shot subagent; seam अनुपस्थित होने पर fail loud)
modelReviewProviderreviewMode: "model" के लिए subagent provider नाम; डिफ़ॉल्ट रूप से पहले registered provider का उपयोग
maxRetries3प्रति request 429 retry प्रयास
retryBaseMs500Retry backoff आधार (प्रति प्रयास दोगुना)
retryMaxWaitMs60000Retry backoff की अधिकतम सीमा
requestTimeoutMs30000प्रति request का hard timeout; exceed होने पर fetch abort
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; बाकी सब approval से पहले अस्वीकार
workspaceDirprocess cwdread-only git inspection के लिए working directory
ci{ enabled: false, … }CI integration section: polling review bot, status-check gate और one-shot ci_run tool (सभी ci.* keys इसी में हैं)

टूल्स और सतहें

सतहप्रकारनोट्स
pr_createtoolएक pull request बनाता है (write; approval-नियंत्रित)
pr_mergetoolएक PR merge करता है (merge/squash/rebase, वैकल्पिक head-branch deletion)
pr_updatetoolएक PR update करता है (title/body/state/base)
gh_reviewtoolएक PR पढ़ता है: metadata, capped diff, comments, CI, static findings
review_posttoolएक review comment प्रकाशित करता है (summary या line-anchored inline)
gh_issuetoolissues को list / get / comment करता है (PRs kind: "pr" marked)
issue_opentoolएक issue बनाता है
issue_commenttoolकिसी issue या PR पर comment करता है
issue_closetoolएक issue close करता है (वैकल्पिक state reason)
gh_searchtoolissues और PRs खोजता है (अलग search quota)
gh_repotoolrepository metadata पढ़ता है
gh_filetoolकिसी branch/tag/commit पर एक file पढ़ता है
gh_repo_searchtoolGraphQL repository खोज (अलग search quota)
gh_checkstoolGraphQL PR status checks (check runs + commit statuses)
/pr createcommandgit स्थिति पढ़ता है और एक pr_create instruction queue करता है
/reviewcommandएक background review job start / stop / post करता है
/issue opencommandएक issue_open instruction queue करता है
ci_runtoolcomposite action / CI driver द्वारा चलाई गई one-shot CI review
review botsurfaceidempotent inline comments वाला polling review bot (ci.*)
status-check gatesurfacePR head commit के हिसाब से success / needs-changes verdict प्रकाशित करता है (action.yml)

आर्किटेक्चर

  • Credential seam. tokenSource: auto प्रति operation क्रम में resolve करता है: credentials seam (GITHUB_TOKEN reference) → environment variable → gh CLI token। यह मान एक local variable है जो REST client को दिया जाता है; यह कभी canonical values, renders, cards, command outputs, injected notices, job output, approval reasons या error messages में नहीं जाता।
  • Approval gate. सभी writes model tools से होकर गुजरते हैं। एक tools/pre-execute waterfall listener write tools के लिए ask लौटाता है, इसलिए registry ctx.approval के ज़रिए मानव से पूछता है (host approval/asked + approval/decided audit pair log करता है) और बिना answerer के fail closed हो जाता है। Commands कभी सीधे write नहीं करते: एक write command read-only context इकट्ठा करता है, फिर एजेंट को जगाता है ताकि model gated tool को एक turn के भीतर चलाए।
  • Background review job. /review <pr> ctx.jobs पर एक github-review job शुरू करता है; job metadata fetch करता है (inline posting के लिए head-commit SHA कैप्चर करते हुए), capped diff, CI checks और existing comments, फिर deterministic multi-file analyzer चलाता है (src/review.ts)। reviewMode: "model" होने पर, job capped diff को host के subagents seam के ज़रिए एक one-shot subagent को सौंपता है। Completion host के dsh-tool-jobs consumer के ज़रिए session तक पहुँचती है; model उसे job_output से पढ़ता है और review_post से प्रकाशित करता है।
  • CI composite action / review bot / status-check gate. Repo में एक composite action (action.yml) शामिल है जो PRs की समीक्षा करती है, CI ठीक करती है और report लिखती है; एक polling review bot idempotent inline comments प्रकाशित करता है; और एक status-check gate PR head commit के हिसाब से verdict प्रकाशित करता है। One-shot ci_run tool headless run चलाता है। हर write approval-gated रहता है।

अनुमतियाँ और डेटा

  • अनुमतियाँ: writes official approval seam पर चलते हैं; कुछ भी re-implement या bypass नहीं किया जाता। Plugin अपने workshop manifest में network:outbound और filesystem:write घोषित करता है।
  • डेटा: review report process memory में job id के आधार पर रहता है; disk पर कुछ भी durable नहीं लिखा जाता।
  • Session log: plugin कोई custom session event types नहीं जोड़ता; सारा model-visible content host-logged surfaces से होकर बहता है (tool/result, user/message, command/run, approval/asked…)।

सुरक्षा सीमाएँ

  • Approval, enforcement नहीं। Writes official seam पर केवल ask/deny decisions उत्पन्न करते हैं; sandbox और approval systems ही enforcement authorities रहते हैं।
  • Fail closed। Approval answerer अनुपस्थित होने पर सबसे सख्त decision पर degrade होता है — कभी silent pass-through नहीं।
  • Token कभी process से बाहर नहीं जाता। यह प्रति operation पढ़ा जाता है और केवल Authorization header में भेजा जाता है; कभी logged, rendered, injected या errors में नहीं आता।
  • Approval से बाहर कोई write नहीं। /pr create कभी खुद commit या push नहीं करता; autoCommit: true के साथ model वे writes bash tool के अपने approval gate से करता है। Review job कोई write नहीं करता; केवल review_post approval के बाद प्रकाशित करता है।
  • Untrusted content escaped और marked होता है। formatPostBody diff से लिए गए file names को backtick- और HTML-escape करता है, और external GitHub content (files, bodies, comments, search results) renders में external के रूप में marked होता है।
  • Bounded work और rate limits। 429s को backoff के साथ retry किया जाता है; शेष quota हर result पर (failures सहित) दिखाया जाता है।

ज्ञात सीमाएँ

  • कोई custom session events नहीं — जानबूझकर (Architecture देखें); audit trails host के अपने event vocabulary पर निर्भर करते हैं।
  • Static analyzer by default — deterministic rules (src/review.ts), शून्य tokens, reproducible। reviewMode: "model" tokens खर्च करता है और इसके लिए subagents seam व एक registered provider चाहिए।
  • Jobs और records process-local हैं — review report plugin memory में job id के आधार पर रहता है; record map maxReviewRecords से capped है (सबसे पुराने settled records पहले evict होते हैं)।
  • npm latest dist-tags पुराने हैंdsh-base द्वारा दिए गए profile closure से install करें; कभी भी bare 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
pnpm test                # vitest run
pnpm run typecheck       # tsc --noEmit
pnpm run check:readmes   # सभी 5 READMEs में TOC anchors, tools और config keys की जाँच करता है

रिपॉज़िटरी संरचना

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 twelve 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

विषय

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

योगदानकर्ता

  • @PerryLink — निर्माता और maintainer: GitHub tool surface, approval gate, background review jobs, CI composite action, review bot, status-check gate और पाँच-भाषा docs।
  • @AraragiEro — Plugins settings पेज में GitHub token settings card (#6)।
  • @alexchenzl — DSH Directory पर plugin को सूचीबद्ध करने का निमंत्रण (#5)।

यह प्रोजेक्ट PerryLink द्वारा अनुरक्षित 33 DeepSeek Harness प्लगइनों में से एक है। अगर यह आपकी मदद करता है, तो बाकी भी करेंगे:

PluginOne-liner
dsh-dsh-auto-reviewअनुमोदन श्रृंखला पर द्वितीय-मॉडल स्वतः-समीक्षा, डिफ़ॉल्ट रूप से विफल-बंद
dsh-dsh-background-agentsवेब UI साइडबार, संदेश और अवरोधन के साथ टिकाऊ पृष्ठभूमि चाइल्ड एजेंट
dsh-dsh-budgetDeepSeek Harness के लिए लागत प्रशासन: बजट, कार्बन और विलंबता एक पैनल में।
dsh-dsh-checkpoint-rewindClaude Code /rewind-समतुल्य: स्नैपशॉट, सत्र फ़ॉर्क, एक-बार पुनर्स्थापना
dsh-dsh-claude-moveClaude Code सत्र, मेमोरी, कौशल और CLAUDE.md को DSH में स्थानांतरित करें
dsh-dsh-clickDeepSeek Harness के लिए क्रॉस-प्लेटफ़ॉर्म नेटिव डेस्कटॉप नियंत्रण — Windows पहले।
dsh-dsh-composer-historyवेब कंपोज़र के लिए टर्मिनल-शैली इनपुट इतिहास: तीर, Ctrl+R खोज
dsh-dsh-data-qualityडेटासेट गुणवत्ता जाँच व उद्धरण सत्यापन (यहाँ उपभोग किया गया वैकल्पिक संख्या-सेतु)
dsh-dsh-defendDeepSeek Harness के लिए प्रॉम्प्ट-इंजेक्शन, जेलब्रेक और सीक्रेट-लीक रक्षा।
dsh-dsh-doublecheckइंजीनियरिंग-अनुशासन रक्षक: आवश्यकताओं की पूछताछ, परीक्षण द्वार, प्रतिद्वंद्वी समीक्षा
dsh-dsh-drawDeepSeek Harness के लिए एकीकृत स्थैतिक-छवि निर्माण रूटिंग।
dsh-dsh-fastDeepSeek Harness के लिए रीड-ओनली प्रदर्शन डायग्नोस्टिक्स।
dsh-dsh-fund-researchचीनी सार्वजनिक म्यूचुअल फंड के लिए नियतात्मक अनुसंधान रिपोर्ट
dsh-dsh-industry-researchउद्योग-अनुसंधान ऑर्केस्ट्रेशन जो इस प्लगिन के ctx.researchReport.assemble से डिलीवरेबल सील करता है
dsh-dsh-libraryDeepSeek Harness के लिए स्थानीय दस्तावेज़ ज्ञानकोश।
dsh-dsh-local-aiDeepSeek Harness के लिए स्थानीय-मॉडल (Ollama) एकीकरण।
dsh-dsh-lsp-actionsभाषा सर्वरों पर LSP निदान, फ़ॉर्मेटिंग, पूर्णता, कोड क्रियाएँ और नाम बदलना
dsh-dsh-maskPII मास्किंग मिडलवेयर: मॉडल सीमा पर अनाम करें, डिस्प्ले लेयर पर पुनर्स्थापित करें
dsh-dsh-mcp-panelकेवल-पढ़ने वाला MCP रनटाइम पैनल: /mcp कमांड + स्थिति, टूल और त्रुटियों वाला Settings टैब
dsh-dsh-mementoअनुमोदन-द्वारित क्रॉस-सत्र मेमोरी: ctx.memory सीम + SQLite + मेमोरी टूल
dsh-dsh-observeDeepSeek Harness के लिए OpenTelemetry और Langfuse अवलोकनीयता निर्यातक।
dsh-dsh-output-stylesClaude Code outputStyles-समतुल्य रनटाइम शैली बदलाव
dsh-dsh-permission-rulesऑडिट के साथ Claude Code-शैली घोषणात्मक allow/deny/ask अनुमति नियम
dsh-dsh-plugin-guideमाँग पर एजेंट कौशल के रूप में प्लगइन-विकास ज्ञान आधार
dsh-dsh-research-reportसामग्री-पता साक्ष्य और सीलबंद संस्करणों वाला सत्यापन-योग्य अनुसंधान-रिपोर्ट इंजन
dsh-dsh-scoreDeepSeek Harness प्लगिनों की बहु-आयामी गुणवत्ता स्कोरिंग।
dsh-dsh-session-pinटिकाऊ क्रम के साथ वेब साइडबार में सत्र पिन करें
dsh-dsh-session-syncDeepSeek Harness के लिए क्रॉस-डिवाइस सत्र सिंक — आपके सत्र स्टोर का एक समर्पित git मिरर।
dsh-dsh-skill-pack-securityसुरक्षा-ऑडिट कौशल पैक: गुप्त स्कैन, निर्भरता और आपूर्ति-श्रृंखला समीक्षा
dsh-dsh-talkDeepSeek Harness के लिए आवाज़-प्रथम सत्र लूप: बोलें और उत्तर सुनें।
dsh-dsh-test-driveDeepSeek Harness प्लगिनों के लिए पृथक इंस्टॉल-एंड-स्मोक टेस्ट ड्राइव।
dsh-dsh-translateDeepSeek Harness के लिए वेंडर पैरामीटर अनुवाद और नियतात्मक JSON मरम्मत।

लाइसेंस

Apache License 2.0 © 2026 dsh-github contributors