dsh-github-workflow: DSH 代理的 GitHub 工作流工具集

前言

通用 GitHub API 工具通常只負責執行單次請求,例如拉取一個 Issue 或發佈一條評論。但 Coding Agent 需要的是完整的流程閉環:從 Issue 分析、代碼編寫、草稿 PR 生成,到 CI 檢查、分級審查、合併發佈。

dsh-github-workflow 是 DeepSeek Harness (DSH) 的 GitHub 深度工作流工具集。它將開發流程固化爲 12 個垂直工具,讓 Agent 能夠執行從 Issue triage 到 PR merge 的全鏈路操作。

核心功能

插件提供以下核心能力:

  • 獲取倉庫上下文:獲取分支、PR、Issue、CODEOWNERS 等治理規則。
  • Issue 分析:提供四維腳手架(問題理解、影響範圍、實現建議、潛在風險)與四層上下文(關聯 PR、歷史 PR、類似 Issue、代碼引用)。
  • 搜索與查重:搜索相關 Issue 與 PR,開工前進行查重。
  • 草稿 PR 管理:創建帶模板、關聯 Issue 的草稿 PR,自動推導變更描述。
  • CI 診斷:檢查 CI 狀態,獲取失敗項的 annotations。
  • 分級 PR Review:將審查結果分爲阻斷、建議、優化三級,並生成結構化評論。
  • 評論與發佈:支持回覆評論、生成發佈說明。
  • 合併與收尾:通過 GraphQL 合併 PR、關閉 Issue、刪除分支。

安裝與啓用

安裝插件需要宿主環境提供 DSH profile。安裝命令如下:

dsh plugin --profile web add dsh-github-workflow

安裝前需確認宿主環境版本滿足 peerDependencies 要求。插件聲明瞭以下版本範圍:

  • @deepseek-ai/dsh-credentials
  • @deepseek-ai/dsh-session
  • @deepseek-ai/dsh-tools
  • @deepseek-ai/dsh-user-approval

若版本不匹配(例如運行時爲 0.2.0-rc.2 而插件要求 ^0.1.0-rc.1 || ^0.2.0-rc.1),插件將靜默失效。建議使用 ^0.1.0-rc.1 或 ^0.2.0-rc.1 版本的宿主環境。

典型用法

該插件支持標準的 Issue 到 Merge 流程,典型調用順序如下:

  1. 獲取上下文:調用 gh_get_repo_context 獲取倉庫全景。
  2. 分析 Issue:調用 gh_analyze_issue 對 Issue 進行四維分析並獲取四層上下文。
  3. 查重:調用 gh_search_related 檢查是否有重複 Issue 或歷史嘗試。
  4. 創建草稿:調用 gh_create_draft_pr 創建帶模板的草稿 PR。
  5. 檢查 CI:調用 gh_check_ci_status 監控 CI 狀態。
  6. 審查與提交:調用 gh_review_pr 進行分級審查並提交。
  7. 交互:調用 gh_reply_comment 回覆評論線程。
  8. 合併:調用 gh_merge_pr 合併 PR(支持 GraphQL)。
  9. 收尾:調用 gh_close_issue 關閉 Issue 或 gh_delete_branch 刪除分支。

安全機制

插件採用 Fail-closed 機制保護寫操作。所有寫操作收斂在單一權限閘口,按序檢查:

  1. 只讀模式:當配置 readOnly: true 時,所有寫操作拒絕。
  2. 用戶確認:默認需經宿主 approval 服務確認,無確認則拒絕。
  3. Token 權限校驗:檢查 requiredTokenScopes,無法驗證權限的 token(如 fine-grained PAT)拒絕操作。

每次被拒的操作會記錄在 session log 中,便於審計。

總結

dsh-github-workflow 通過 12 個垂直工具,爲 DSH Coding Agent 提供了完整的 GitHub 開發流程能力。它具備零運行時依賴、MIT 許可證、Fail-closed 安全設計等特點,適合需要深度集成 GitHub 工作流的開發者使用。

羽毛球分组比赛记分
小程序二维码

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

小夜