Skip to content

dsh-github-ci

Verified

dsh-github-ci Β· v1.0.0 Β· MIT Β· Web UI

GitHub Actions CI manager for DeepSeek Harness: live pipeline dashboard, OAuth device-flow sign-in, repo browser, run logs, and the github_ci agent tool.

Install

dsh plugin add dsh-github-ci

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Tags

Creators

Readme

dsh-github-ci

GitHub Actions CI manager for DeepSeek Harness β€” a live pipeline dashboard in the web UI plus a github_ci agent tool.

Features

  • Pipeline dashboard β€” floating overlay (or Settings page) with pass/failed/running summary, status badges, and per-run actions
  • Sign in two ways β€” GitHub OAuth device flow (no client secret; needs an OAuth App with Enable Device Flow checked) or a Personal Access Token (repo + workflow scopes)
  • Repo browser β€” list your own repos (private + org) or search any public user/org, pick from a dropdown
  • Run actions β€” cancel in-progress runs, rerun failed jobs, open on GitHub
  • Run logs β€” failed-step detection with log tails, surfaced to the agent
  • github_ci agent tool β€” the agent can list workflows/runs, inspect jobs, pull log tails, trigger workflows, cancel and rerun
  • Fix with Agent β€” one click drafts a structured debug request (run metadata + failure logs) into the chat composer
  • Bad-credential recovery β€” a rejected token flips the panel back to sign-in with a source-specific explanation (OAuth re-auth vs. paste a new PAT)

Install

dsh plugin --profile web add dsh-github-ci

From source instead:

dsh plugin --profile web add github:knownasmobin/dsh-github-ci

Setup

Option A β€” OAuth device flow (recommended)

  1. Open GitHub Developer Settings β†’ OAuth Apps β†’ New OAuth App
  2. Name: anything. Homepage / callback URL: http://127.0.0.1:3080
  3. Check "Enable Device Flow" (required β€” the endpoint returns 404 without it)
  4. Register, copy the Client ID (no secret needed)
  5. Open the panel (βš™ CI in the chat header or sidebar foot) β†’ OAuth tab β†’ paste Client ID β†’ Start OAuth β†’ enter the code at the GitHub activation page

The token is stored in the DSH credential store and reused across sessions.

Option B β€” Personal Access Token

Generate a token at github.com/settings/tokens with repo and workflow scopes, then paste it in the panel's PAT tab.

No sign-in is required to browse public repositories β€” anonymous read works out of the box.

Agent tool

github_ci({ action: "list_workflows", owner: "vercel", repo: "next.js" })
github_ci({ action: "get_logs", repo: "owner/repo", run_id: 123456789 })
github_ci({ action: "trigger", owner, repo, workflow_id: "deploy.yml", ref: "main" })

Actions: list_workflows, list_runs, get_run, get_jobs, get_logs, trigger, cancel, rerun.

How it works

  • Host half registers REST routes on the harness web server and the github_ci model tool; GitHub calls go out via fetch with per-request timeouts
  • Client half mounts the dashboard into shell slots (session header, sidebar, overlay, settings) and bridges prompts into the chat composer
  • Credentials live in the DSH credential store β€” never in the source tree

License

MIT