GitHub CI co-pilot for DeepSeek Harness: PR review, CI failure fixing, issue triage and release notes.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:temotee2103/dsh-ci-co-pilot
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
GitHub CI co-pilot for DeepSeek Harness. Everything is a plugin: PR review, CI failure fixing, issue triage, and release notes.
dsh-ci-co-pilot turns your DeepSeek Harness agent into a GitHub co-pilot that can review pull requests, debug failing CI, triage issues and draft release notes — all with structured data from the GitHub REST API, and zero extra runtime dependencies.
✨ Features
| Tool | What it does |
|---|---|
gh_review_pr |
Pull a PR with its changed files, unified diff, existing reviews and CI status — the agent then writes the review. |
gh_submit_review |
Approve, request changes, comment — with optional inline comments anchored to the diff. |
gh_fix_ci |
Inspect failing checks/annotations/log tails for a commit, branch or workflow run. |
gh_triage_issues |
List issues with triage signals: age, staleness, comments, labels. |
gh_update_issue |
Set labels, assign, comment, set milestone, close/reopen. |
gh_release_notes |
Generate grouped release notes from PRs merged since the last release, a tag, or a date. |
gh_rerun_ci |
Rerun a workflow run — failed jobs only, or everything (verify a fix). |
gh_create_release |
Publish release notes as a GitHub release (creates the tag too). |
gh_list_pulls |
List PRs by state / base / head branch with age, label and draft signals — find PRs to review or track a release train. |
gh_repo_status |
One-call repo health snapshot: stars, open PR / issue counts, recent workflow runs. |
🚀 Install
# from npm (recommended)
dsh plugin --profile web add @temotee2103/dsh-ci-co-pilot
# from GitHub (zero build step — works immediately)
dsh plugin --profile web add github:temotee2103/dsh-ci-co-pilot
# or via the community index (CN mirror + sha256 check)
xlings install dsh:dsh-ci-co-pilot -y
Then restart your Harness session (or start dsh web).
Tip: pin a commit for reproducible installs:
dsh plugin --profile web add github:temotee2103/dsh-ci-co-pilot#<40-hex-sha>
🔑 Authentication
Public repos work without a token (GitHub's unauthenticated rate limit applies). For private repos and heavier usage:
# any of these is read by the plugin at startup
export GITHUB_TOKEN=github_pat_...
export GH_TOKEN=... # gh CLI style
You can also set a default repo and API base in your profile's cordis.patch.yml:
- id: ci-co-pilot
name: '@dsh-external/dsh-ci-co-pilot'
config:
repo: myorg/myrepo
apiBase: https://github.example.com/api/v3 # GitHub Enterprise Server
💬 Usage examples
Ask your agent things like:
Review a PR
Review PR #42 in
deepseek-ai/deepseek-harness. Focus on race conditions and suggest concrete fixes, then submit a review.Fix failing CI
CI is red on
main. Find the failures and fix them, then push.Triage issues
Triage the open issues in this repo: label the unlabeled ones, close stale duplicates, and leave a comment on the top 3 by comments.
Release notes
Draft release notes since the last release and save them to
CHANGELOG.md.Find PRs to review
List the open PRs in
o/rsorted by update time, and review the riskiest one.Repo health check
Give me a snapshot of
o/r: open PR/issue counts and the latest CI results.
⚙️ Configuration
All knobs are validated config values you can override from your profile's cordis.patch.yml (see the defaults in cordis.patch.yml): review.maxFiles, review.maxDiffChars, ci.maxLogLines, ci.maxFailedChecks, triage.perPage, triage.staleDays, release.perPage, pulls.limit, status.runs. The API client also retries rate-limited responses (403 / 429) automatically, honoring Retry-After and x-ratelimit-reset.
🧑💻 Development
pnpm install
pnpm test # vitest, mocked fetch — no network, no API key
pnpm check # syntax checks + tests
🧩 How it works
dsh-ci-co-pilot is a standard Cordis bundle for DeepSeek Harness:
cordis.patch.yml— the bundle layer that mounts the plugin row.index.js— plugin entry: registers the ten tools on thetoolsservice.src/github.js— a tiny fetch-based GitHub REST client (auth header, pagination, rate-limit retry, error mapping,AbortSignal).src/tools/*— one module per tool, returning structured canonical values;src/format.jsrenders them to model-facing markdown.
The plugin ships plain ESM JavaScript — no build step, so dsh plugin add github:... installs and runs immediately.
📚 Listings
Listed in community indexes and curated lists:
| List | Entry |
|---|---|
| awesome-dsh-plugin (community pick) | dsh-ci-co-pilot |
| dsh-index (official plugin index) | dsh-ci-co-pilot |
| 0xsline/awesome-deepseek-harness | dsh-ci-co-pilot |
| Dominic789654/awesome-deepseek-harness | dsh-ci-co-pilot |
| imsai-sh/awesome-deepseek-harness-plugins | dsh-ci-co-pilot |
| Anil-matcha/awesome-dsh-plugin | dsh-ci-co-pilot |
| losebird/dsh-plugin-market | dsh-ci-co-pilot |
📄 License
MIT © temotee2103
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-git-graph★ 6553
Git branch selector and Git graph for the dsh web GUI: switch branches and explore branch-lane and commit history from the conversation header.
lehhair/dsh-diff-viewer★ 26
PiUI-style diff viewer replacing the stock DiffBlock for write/edit tool calls.
DietCokewithSugar/dsh-user-experience★ 19
Finds potential UX issues in your project: automatically reviews React/TypeScript code, pinpoints each problem, and gives concrete suggestions.
cirelir/dsh-change-review★ 13
Session change-review plugin for DeepSeek Harness: tracks write/edit tool calls per session and renders line-level diffs with customizable colors, with session isolation, subagent aggregation, and SSE live updates.
zoahdev/dsh-github-intelligence★ 12
The most complete GitHub integration for dsh: repo overview, releases, issues, pull requests, contributors, search, and a deep repo report with TTL caching — no API key needed.
DamonKoy/dsh-web-ui#dsh-git-graph★ 11
Git branch selector and Git graph in the conversation header of the dsh web GUI.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.