前言¶
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 策略,确保了在自动化流程中的安全性。