Bundle
@temotee2103/dsh-ci-co-pilot
GitHub CI co-pilot for DeepSeek Harness: PR review, CI failure fixing, issue triage and release notes. Everything is a plugin.
- Source
- temotee2103
- stars
- 2 stars
- License
- MIT
- Updated
- Updated 11 days ago
Readme
# dsh-ci-co-pilot
> GitHub CI co-pilot for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).
> Everything is a plugin: PR review, CI failure fixing, issue triage, and release notes.
[](LICENSE)
[](package.json)
[](https://github.com/topics/dsh-plugin)
[](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin)
`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
```bash
# 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:
```bash
# 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`:
```yaml
- 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/r` sorted 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`](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
```bash
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 the `tools` service.
- `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.js` renders 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](https://github.com/awesome-dsh-plugin/awesome-dsh-plugin) (community pick) | `dsh-ci-co-pilot` |
| [dsh-index](https://github.com/Sunrisepeak/dsh-index) (official plugin index) | `dsh-ci-co-pilot` |
| [0xsline/awesome-deepseek-harness](https://github.com/0xsline/awesome-deepseek-harness) | `dsh-ci-co-pilot` |
| [Dominic789654/awesome-deepseek-harness](https://github.com/Dominic789654/awesome-deepseek-harness) | `dsh-ci-co-pilot` |
| [imsai-sh/awesome-deepseek-harness-plugins](https://github.com/imsai-sh/awesome-deepseek-harness-plugins) | `dsh-ci-co-pilot` |
| [Anil-matcha/awesome-dsh-plugin](https://github.com/Anil-matcha/awesome-dsh-plugin) | `dsh-ci-co-pilot` |
| [losebird/dsh-plugin-market](https://github.com/losebird/dsh-plugin-market) | `dsh-ci-co-pilot` |
## 📄 License
MIT © [temotee2103](https://github.com/temotee2103)
Install
dsh plugin --profile web add github:temotee2103/dsh-ci-co-pilot
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install temotee2103-dsh-ci-co-pilot from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.