前言¶
DeepSeek Harness (DSH) 採用了插件化架構。harness-github 是其中的一個 GitHub 連接器插件,旨在讓智能體能夠直接處理 GitHub 上的 PR、issue、CI 檢查及發佈流程。它不需要用戶額外配置 OAuth 或 Device Flow,直接複用現有的認證態。
核心功能¶
該插件主要解決智能體與 GitHub 交互的認證與權限問題:
1. 全流程覆蓋:支持檢查 PR、分診 issue、調試失敗的 Actions 檢查、處理 review 反饋、準備代碼更改以供審查。
2. 連接器優先:優先使用 gh CLI,若不可用則自動回退到 REST API (fetch)。
3. 認證零額外操作:複用 gh CLI 登錄態或環境變量 GITHUB_TOKEN,不做 GitHub App 或網頁登錄流程。
4. 安全機制:所有寫操作(如評論、創建 PR、合併)在執行前都請求人工審批;token 僅在內存中使用,永不寫入日誌或配置文件。
安裝與啓用¶
安裝前需確保 DSH 版本不低於 0.1.0-rc.6。
1、在任意 profile(web / tui / headless)下執行安裝命令:
dsh plugin add harness-github
2、重啓 DSH 後,插件生效。系統會注入 github:workflow 工作流指引,並註冊 18 個 github_* 工具。無需額外配置即可開始使用(公開倉庫立即可用,寫操作需要憑據與審批)。
典型用法¶
通過以下場景示例瞭解插件工作流:
- 查看與分診:查看倉庫待處理的 issue。
用戶: 看看 deepseek-ai/deepseek-harness 有沒有待處理的 issue
Agent: github_issue_list repo=deepseek-ai/deepseek-harness
- 調試 CI:定位 PR 中失敗的檢查項。
用戶: 這個 PR #123 的 CI 掛了,幫我看看
Agent: github_pr_view repo=o/r number=123 → 獲取詳情與檢查彙總
github_workflow_run repo=o/r runId=... → 查看失敗步驟與日誌
- 處理反饋:拉取評論並回復。
用戶: 處理一下這個 review 反饋,然後回覆他們
Agent: github_review_feedback repo=o/r number=123 → 拉取評論線程
github_pr_comment repo=o/r number=123 → 回覆 (需審批)
- 發佈變更:準備代碼變更並創建 PR。
用戶: 把我這些改動發個 PR
Agent: github_pr_prepare repo=o/r → 檢查/提交/推送 (需審批) + 建 PR (需審批)
工具清單¶
插件提供 18 個工具,分爲讀工具和寫工具。
| 工具名稱 | 功能 | 備註 |
|---|---|---|
github_repo_view |
倉庫概覽 | 讀工具 |
github_pr_list |
列 PR | 讀工具 |
github_pr_view |
PR 詳情 + 文件變更 + 評論 + checks | 讀工具 |
github_checks_view |
頭提交狀態檢查 + Actions run 列表 | 讀工具 |
github_workflow_run |
單 run 失敗步驟 + 關鍵日誌 | 讀工具 |
github_issue_list |
列 issue | 讀工具 |
github_issue_view |
issue 詳情 + 評論 | 讀工具 |
github_search |
搜索 issue/PR/倉/代碼 | 讀工具 |
github_release_list |
最近發佈 | 讀工具 |
github_review_feedback |
PR review 評論線程 | 讀工具 |
github_pr_create |
建 PR (防重複, draft 支持) | 寫工具 (需審批) |
github_pr_comment |
評論 PR/issue | 寫工具 (需審批) |
github_review_submit |
approve / comment / request-changes | 寫工具 (需審批) |
github_pr_merge |
merge / squash / rebase | 寫工具 (需審批) |
github_issue_create |
建 issue (標籤/負責人) | 寫工具 (需審批) |
github_issue_comment |
評論 issue | 寫工具 (需審批) |
github_issue_close |
關閉 issue | 寫工具 (需審批) |
github_pr_prepare |
本地流程:檢查/提交/推送/建 PR | 寫工具 (需審批) |
認證與權限¶
解析順序¶
ghCLI 已登錄(gh auth status有效)→ 直接複用。- 環境變量
GITHUB_TOKEN→ REST API 帶認證。 - 公開倉庫只讀 → REST API 匿名調用(速率受限,約 60 次/小時)。
- 都沒有且需寫操作 → 工具失敗,需運行
gh auth login或設置GITHUB_TOKEN。
權限邊界¶
- 只讀工具:公開倉庫可用;私有倉庫需要憑據。
- 寫工具:需要
repo寫權限,且每次執行前必須經過人工審批。默認策略爲ask,拒絕靜默放行。
兼容性¶
- DeepSeek Harness:
>= 0.1.0-rc.6 < 0.2.0(推薦 rc.7 / rc.8) - Node.js:
>= 18.0.0 - gh CLI: 可選(未安裝自動走 REST)
- Platform: web / tui / headless 通用
總結¶
harness-github 通過複用 gh CLI 和 REST API,爲 DSH 提供了一套無需額外登錄配置的 GitHub 交互方案。它將複雜的 GitHub API 轉化爲 18 個具體的工具,並通過嚴格的審批機制和內存化 token 策略,確保了在自動化流程中的安全性。