Coding & Development🌐universal

DSH GitHub Flow (dsh-github-flow)

让 DeepSeek Harness Agent 拥有操作 GitHub 的原生手脚!原生复用 gh CLI 安全凭证,支持 PR 自动创建与审查、CI 失败诊断修复、三维待办 Issues、SWR 0ms 秒开全景驾驶舱。

Quick Start

Install this Skill

npx skills add ItQianChen/dsh-github-flow
# DSH GitHub Flow (`dsh-github-flow`)

<p align="center">
  <a href="https://www.npmjs.com/package/dsh-github-flow"><img src="https://img.shields.io/npm/v/dsh-github-flow.svg?style=flat-square&color=0969da" alt="npm version" /></a>
  <a href="https://www.npmjs.com/package/dsh-github-flow"><img src="https://img.shields.io/npm/dm/dsh-github-flow.svg?style=flat-square&color=2ea043" alt="npm downloads" /></a>
  <a href="./LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square" alt="license" /></a>
  <a href="https://deepseek-harness.github.io/deepseek-harness/"><img src="https://img.shields.io/badge/Cordis-Compatible-8957e5.svg?style=flat-square" alt="Cordis" /></a>
  <img src="https://img.shields.io/badge/Platform-macOS%20%7C%20Windows%20%7C%20Linux-informational.svg?style=flat-square" alt="Platform" />
</p>

<p align="center">
  <b>让 DeepSeek Harness Agent 拥有操作 GitHub 的原生手和脚,为人机协作打造沉浸式 GitHub 工作台。</b><br>
  原生复用宿主机 <code>gh</code> CLI 安全登录凭据,告别 Personal Access Token 泄露;深度打通本地 Git 工作区与云端仓库协作,兼具 <b>9 大领域 Agent 核心工具(76+ action,覆盖 PR/Issue/Actions 工作流治理/免 clone 读取任意文件/密钥与变量管理)</b>、<b>人类 Slash 快捷指令</b>、<b>Web UI 全景工作台</b> 与 <b>一键自动跨平台无缝升级</b>。
</p>

<p align="center">
  <b>简体中文</b> | <b><a href="./README.en.md">English</a></b>
</p>

---

## 🎯 为什么需要 `dsh-github-flow`?

在日常使用 AI Agent 辅助编程与工程研发时,开发者经常遭遇以下断层痛点:

| 研发协作场景 | 传统方式(痛点重重) | `dsh-github-flow`(原生体验) |
| :--- | :--- | :--- |
| **Agent 提 PR & 代码评审** | 用户必须手动在网页复制分支、点开 GitHub 网页点鼠标提交 PR,无法实现自主研发闭环。 | **Agent 原生提单与评审**:对 Agent 说“帮我把当前分支提个 PR”,Agent 调用 `github_pr` 自动完成提交与代码 diff 审查。 |
| **CI / Actions 构建报错修复** | 构建挂了后,开发者在网页翻几十页 Actions 日志,复制报错贴给 Agent 调试。 | **精准抓取报错**:对 Agent 说“看下 CI 为什么失败”,Agent 调 `github_run(log_failed)` 秒级定位失败步骤并自动修复代码。 |
| **安全性与鉴权维护** | 必须在插件配置文件里贴明文 GitHub Token(PAT),面临权限失控与密钥泄漏风险。 | **0 密钥泄露风险**:直接复用机器本地已认证的 `gh auth login` 凭据,使用系统安全 Keyring。 |
| **多任务切屏困扰** | 必须在 VS Code、浏览器 GitHub 标签页和 DSH 聊天窗之间反复切屏,上下文频繁丢失。 | **内置沉浸式全景工作台**:DSH 内部常驻 PR 门禁、CI 流水线、三维待办 Issue 矩阵,一目了然。 |
| **首屏加载与性能等待** | 每次打开全景驾驶舱全屏白屏卡死转圈 8~15 秒,等待所有网络与子进程请求返回。 | **SWR 0ms 瞬间秒开**:打开立即呈现本地持久化快照,后台静默重验;提供专属设置面板自主调节拉取间隔与纯手动模式。 |
| **插件维护与升级** | 插件更新全靠开发者去 npm 碰运气看版本号,命令复杂不敢升。 | **闲时静默探测 + Web 一键自动升级**:双源极速探测,自动适配 Mac/Windows 跨平台命令,界面点击即升。 |

---

## 🚀 安装指南

### 步骤 1:前置准备(若已安装可跳过)
确保你的机器上已安装 GitHub CLI (`gh`) 并已登录:
```bash
# Windows 安装
winget install --id GitHub.cli

# macOS 安装
brew install gh

# 登录认证(仅需执行一次)
gh auth login
```

### 步骤 2:安装插件到 DSH

在 DSH 终端根据你的使用环境执行对应命令:

```bash
# 场景 A:DSH 桌面版 (Desktop Profile)
dsh plugin --profile desktop add dsh-github-flow

# 场景 B:DSH Web / CLI 环境(--profile 为官方 CLI 必填参数,profile 名按实际环境填写)
dsh plugin --profile web add dsh-github-flow
```

> 💡 **提示(新版本发布后 24 小时内的安全锁定期说明)**:  
> DSH 内置包管理器默认启用了防投毒的供应链安全策略(`minimum-release-age = 24h`)。新版本发布后的 **24 小时内**,若执行不带版本号的裸名安装命令,底层会自动回退为发布满 24 小时的上一稳定版本。如需**立即尝鲜刚发布的新版本**,请在命令末尾显式追加 `@版本号`(替换为 npm 页面显示的最新版本):
> ```bash
> dsh plugin --profile desktop add dsh-github-flow@<最新版本号>
> ```
> 版本发布满 24 小时后,执行原本的裸名命令即可默认解析安装最新版。

---

## 🤖 核心工具集 (Agent Tools):给 Agent 装上 GitHub 的手和脚

本插件精选聚合为 **9 大领域核心工具**,拒绝几十个无用微型工具撑爆 Agent 上下文,原生搭载 **Token 防溢出保护(默认 24KB 智能二分截断)**、**高密度 Markdown 原生渲染(列表输出压缩 70%+ Token)** 与 **零参数 CWD 智能绑定**。

### 1. `github_pr`:PR 全生命周期管理与自动化代码审查
> **典型对话指令**:
> - *"帮我检查当前仓库有没有需要我审查的 PR?"*
> - *"帮我把当前特性分支创建一个 PR,标题叫 'feat: add dark mode',附带简明改动说明"*
> - *"审查 PR #12 的代码差异并给出安全重构建议"*
> - *"检查 PR #8 的 CI 检查通过了吗?通过的话帮我 Squash 合并并删除源分支"*

* **支持操作 (`action`)**:
  * `list`:列出当前仓库开放的 PR(带作者、审查判定、CI 门禁状态,支持 `state` / `author` / `limit` 过滤);
  * `view`:查看指定 PR 详情、描述与元数据;
  * `diff`:获取 PR 的完整代码差异(`stat_only` 仅看文件变更概览,防大 PR 溢出);
  * `checks`:审查指定 PR 的 CI 门禁状态(通过/失败/跳过分类徽章、所属工作流与详情链接);
  * `create`:一键自动创建 PR(支持 draft 草稿模式与 `--dry-run` 预演);
  * `checkout`:🆕 把 PR 代码检出到本地分支,Agent 可直接在沙箱跑测试验证改动;
  * `status`:🆕 查看当前分支关联 PR 的合并冲突状态(`CLEAN` / `CONFLICT`);
  * `review`:提交代码审查意见(`APPROVE`, `REQUEST_CHANGES`, `COMMENT`);
  * `merge`:自动执行合并(支持 `squash` / `merge` / `rebase`,可指定 `delete_branch`;需 `confirm: true` 二次确认);
  * `ready`:🆕 Draft ↔ Ready 切换(附 `undo: true` 可转回 Draft,完整可逆);
  * `revert`:🆕 创建反向提交(远端生成新 revert PR,需 `confirm: true`);
  * `update_branch`:🆕 将基准分支最新提交同步进 PR 分支——「分支落后需更新」CI 门禁失败的自愈动作;
  * `view_images`:🆕 下载 PR 讨论截图(正文+评论,支持 `image_urls` 精准提取与触顶续传清单)。

---

### 2. `github_run`:CI 流水线排查与失败定位神器(Agent 自动修 Bug 核心)
> **典型对话指令**:
> - *"最近一次 Actions 工作流为什么挂了?提取失败步骤日志并帮我修复"*
> - *"看一下当前仓库最近 5 次 CI 构建的状态"*
> - *"重新运行刚才失败的工作流"*

* **支持操作 (`action`)**:
  * `log_failed`(🔥 **核心杀手锏**):**专供 Agent 快速诊断**,自动抓取并剥离无关日志,精准提取失败 Step 的关键错误堆栈,供 Agent 直击问题修复代码;
  * `list`:查看当前仓库的 Workflow 运行历史与结论(支持 `branch` / `status: failure` 快速锁定失败构建);
  * `view`:查看指定 run_id 的详细阶段(Jobs & Steps);
  * `trigger`:🆕 主动触发 `workflow_dispatch` 工作流(提交修复后立即验证远端 CI);
  * `workflow_list`:🆕 工作流清单查询(默认仅 active;`all: true` 含 disabled——排查「工作流为何不跑」时 disabled 状态本身就是答案);
  * `workflow_view`:🆕 工作流详情(名称/ID/文件名定位,含最近运行记录);
  * `workflow_enable` / `workflow_disable`:🆕 启停工作流(disable 会显式警告「下次 trigger 将静默失败」);
  * `downloa

... (truncated)