dsh-github-harness:用 GitHub Issue 驅動 DSH 單智能體 Issue 到 PR 工作流

前言

在 DSH 裏做倉庫改動時,常見做法是自己在會話裏描述需求、改代碼、再手動開 PR。需求若來自 GitHub Issue,還要在 Issue、本地 checkout 和 DSH 會話之間來回對齊分支與上下文;審查意見或 CI 失敗後,往往要重新整理「上次做到哪了」。若希望 Issue 作任務入口、PR 作交付入口,且驗收通過才推送,就需要把 GitHub 與 DSH 串成可重複的一圈循環。

下面介紹社區插件 dsh-github-harness(維護者 yintaocheng,分類:工作流)。它在 DeepSeek Harness 中提供工具 github_harness,把「Issue → DSH 實現 → 獨立驗收 → Pull Request」跑通;同一 Issue 可憑評論與 CI 反饋續跑,無需每次重開任務。

這是什麼

dsh-github-harness 是面向 DeepSeek Harness 的可複用插件與 CLI:在目標 Git 倉庫(不必包含插件源碼)裏,按 Issue 管理分支、DSH 會話和 PR,形成單智能體任務環。README 概括爲:讓 GitHub Issue 成爲 DSH 的任務入口,讓 PR 成爲代碼交付入口。

Issue → DSH 實現 → 獨立驗收 → Pull Request
  ↑                              │
  └────── 修改意見 / CI 反饋 ──────┘

插件當前版本 v0.3.0(見倉庫 package.json),許可證 MIT,屬於 DeepSeek Harness 社區插件;目錄頁見 SkillHub,源碼見 GitHub。

核心功能

以下能力均來自項目 README,安裝前可對照倉庫文檔覈對。

  • 按任務管理上下文:每個 Issue 使用獨立分支、DSH 會話和 PR。
  • 持續處理反饋:讀取 Issue 評論、PR 審查和 CI 結果,對同一 Issue 續跑。
  • 先驗證,再發布:驗收失敗不推送;沒有代碼變更時不創建空 PR。
  • 支持多個項目:插件只需安裝一次,調用時通過 workdir 選擇目標倉庫;同一 checkout 中的任務串行執行。
  • 保留人工審查:穩定版不自動批准或合併 PR。

安裝與啓用

環境要求:DeepSeek Harness 0.2.0-rc.2、Node.js 22+ 和 Git(與 package.json 中 engines 及 README 一致)。

在 DSH 的 Plugins → Add plugin 中輸入官方安裝串:

github:yintaocheng/dsh-github-harness#v0.3.0

安裝後啓用插件,按宿主提示完成重啓。註冊到宿主後的工具名稱爲 github_harness。CLI 安裝與桌面端細節見倉庫 docs/desktop.md。

典型用法

1. 準備目標項目

打開一個已有基線提交的 Git 倉庫,確保 HTTPS origin 指向你有寫權限的 GitHub 倉庫。Windows 可通過 Git Credential Manager 登錄:

git credential-manager github login --browser

其他憑據方式見倉庫 認證配置。同時確認 DSH 的 headless 模型可用。

2. 配置驗收

在目標倉庫根目錄新建 harness.local.json:

{
  "owner": "YOUR_ACCOUNT_OR_ORG",
  "repo": "YOUR_PROJECT",
  "base": "main",
  "agent": { "id": "solo", "expectedLogin": "YOUR_GITHUB_LOGIN" },
  "dsh": { "command": ["dsh", "headless"] },
  "verify": [["node", "--test"]]
}

替換 owner、repo、expectedLogin 和 verify 中的驗收命令。Windows 若 PATH 中找不到 dsh,將 dsh.command 首項改爲桌面自帶 dsh.cmd 的絕對路徑。完整字段說明見 配置示例。

將本地配置與運行狀態排除出版本庫:

harness.local.json
.harness/
.reference/

3. 運行一個 Issue

在 GitHub 創建 Issue,寫清需求、範圍和驗收條件。在 DSH 中可以用自然語言驅動,例如:

用 github_harness 檢查 my-project 的配置,然後處理該倉庫的 Issue #42。

也可以直接調用工具(JSON 參數):

{"action":"doctor","workdir":"my-project"}
{"action":"run","issue":42,"workdir":"my-project"}
{"action":"status","issue":42,"workdir":"my-project"}

workdir 可以是絕對路徑,或相對當前 DSH 會話工作區。PR 創建後,在 Issue 或 PR 留下反饋,再對同一目錄和 Issue 執行 run 即可續跑。

doctor 會檢查身份、倉庫讀取能力和 DSH 命令;它不會替你創建倉庫,也不會驗證所有寫權限。GitHub 配置必須匹配目標 checkout,不要通過複製任務緩存切換倉庫或賬戶。

適用場景與注意

適合:已在用 DSH 做代碼修改、希望 Issue/PR 成爲唯一任務與交付界面、且能在本地配置驗收命令(如 node --test)的團隊或個人。

權限與安全:工具需要宿主授權的文件、進程和網絡訪問,並以當前 DSH 進程權限運行;agent、測試與 Git hooks 都可能執行目標倉庫中的本地代碼。安裝前應閱讀源碼與 MIT 許可證,僅用於可信倉庫。

生態說明:DeepSeek Harness 的理念是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文不以「官方應用商店」表述。

更多說明見倉庫文檔:安裝與憑據、命令與續跑、演示項目 dsh-github-harness-demo。

結尾

dsh-github-harness 把 GitHub Issue 與 PR 固定爲 DSH 單智能體工作流的入口與出口:驗收通過才推送,反饋留在 Issue/PR 即可續跑同一任務。若你正在 DSH 裏維護多倉庫改動,可按上文安裝串與 harness.local.json 在目標倉庫試跑一個 Issue。

  • 目錄頁:https://www.skillhub.cn/plugins/yintaocheng/dsh-github-harness
  • GitHub:https://github.com/yintaocheng/dsh-github-harness
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜