前言¶
DeepSeek Harness (DSH) 采用插件化架构,开发者可以通过插件扩展智能体的能力。在本地开发或调试时,频繁查询 GitHub 仓库、创建 Issue 或将仓库克隆到工作区是常见需求。tkwkeven/dsh-tool-github 插件为 DSH 提供了 GitHub REST API 支持,注册了 github_* 工具集,使智能体能够绑定账号、查询数据、创建 Issue/PR 以及克隆仓库。此外,它还提供了一个浏览器端的 GitHub 面板。
核心功能¶
该插件主要提供以下能力:
- 账号绑定:通过
github_bind验证并存储个人访问令牌(PAT),后续工具自动使用该身份。 - GitHub API:支持仓库元数据查询 (
github_repo)、搜索 (github_search)、Issue/PR 管理 (github_issues,github_prs,github_create_issue,github_create_pr) 以及文件内容读取 (github_content)。 - 工作区管理:支持将仓库克隆到本地 (
github_workspace_add) 并注册为 DSH 工作区,使其出现在工作区选择器中。 - Web GUI 面板:在 DSH Web 界面的侧边栏提供一个 GitHub 面板,用于查看状态、绑定账号、添加工作区等。
安装与启用¶
在插件目录下执行以下命令进行安装:
dsh plugin --profile web add .
安装后需要重启 Web GUI (dsh web) 才能加载新的客户端组件,GUI 客户端插件发现机制仅在进程启动时运行。
使用方法¶
智能体可以直接调用以下工具或通过自然语言交互:
github_bind:绑定 GitHub 账号(需输入 PAT)。github_whoami:查看当前登录账号。github_workspace_add <owner> <repo> [branch]:克隆仓库并添加为工作区。github_workspace_list:列出已克隆的工作区。github_repo <owner>/<repo>:获取仓库信息(如 star 数)。github_search <query>:搜索仓库或代码。
工作区与凭证机制¶
- 克隆方式:
github_workspace_add优先使用git clone,当 Git TLS 不可用时回退到 codeload tarball 下载。 - 凭证解析:令牌来源优先级为:凭证存储 -> 插件配置 -> 环境变量 (
GITHUB_TOKEN)。github_bind将令牌存储在 DSH 的凭证 seam (ctx.credentials) 中,更改凭证无需重启进程。
Web GUI 面板¶
安装并重启 dsh web 后,侧边栏会出现 GitHub 图标。点击面板中的功能(如“绑定账号”、“添加工作区”)会通过 /github-* 命令与主机通信。这意味着面板不直接持有令牌或访问 GitHub API,安全性较高。
配置¶
插件支持通过配置文件调整参数(如 ~/.dsh/cordis.patch.yml 或 profiles/<name>/cordis.patch.yml):
- id: tool-github
config:
maxResults: 20
workspaceRoot: D:\github-workspaces
总结¶
该插件通过标准化的 API 工具和 Web 面板,将 GitHub 集成到了 DSH 工作流中,适合需要频繁与 GitHub 交互的开发者。