前言¶
在 DeepSeek Harness(DSH)里让 Agent 查仓库、看 Issue、开 Issue,通常需要自行拼 GitHub API、管 token、还要考虑和当前 DeepSeek 账号怎么对应。社区插件 dsh-github-link(维护者 qichuang321,分类:联网工具)做的是两件事:把当前 DeepSeek 账号与本机 GitHub 身份绑定,并注册名为 github 的 Agent 工具,限定在读取仓库与 Issue 相关操作上。绑定记录走 DSH 本机 credentials 服务,按 DeepSeek 账号 ID 隔离;不会改 DeepSeek 官方资料,也不会把 token 交给浏览器。Agent 不能推送代码。
下面介绍插件定位、能力边界、安装与三种关联方式,以及 github 工具的用法与注意点。事实以 GitHub 仓库 README 为准;社区目录页:https://www.skillhub.cn/plugins/qichuang321/dsh-github-link。
这是什么¶
dsh-github-link 是纯 JavaScript 的 DSH Web 侧插件(版本 1.0.0,MIT 许可证),Host 入口为 index.js,在设置里提供 GitHub 账号 页面。安装后重启或刷新 DSH Web UI,在 设置 → GitHub 账号 完成关联即可。
插件以当前 dsh 进程权限运行;安装前建议自行查看仓库源码与许可证。SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
账号关联与隔离¶
- 绑定保存在本机 DSH
credentials,按当前 DeepSeek 账号 ID 隔离。 - 三种关联方式见下一节;
gh-cli方式不复制 token,每次通过gh auth token读取本机 CLI 登录,撤销或轮换 CLI 登录即可失效。
Agent 工具 github¶
| action | 作用 |
|---|---|
status |
查看 DeepSeek / GitHub 关联状态,不需要已关联。 |
list_repos |
列出当前 GitHub 账号可见的仓库。 |
list_issues |
读取 owner/name 的 Issue / PR。 |
create_issue |
创建 Issue,需要 title。 |
comment_issue |
评论 Issue / PR,需要 number 和 body。 |
配置项 allowMutations 默认为 true,控制是否允许 Agent 创建 Issue / 评论。
明确不做的事¶
- 不修改 DeepSeek 官方账号资料,不把 GitHub token 发给浏览器。
- Agent 只能调用插件暴露的仓库与 Issue 操作,不能推送代码。
安装与启用¶
在已安装 DSH CLI 的本机执行(--profile web 面向 Web UI):
dsh plugin --profile web add github:qichuang321/dsh-github-link
安装后重启或刷新 DSH Web UI,打开 设置 → GitHub 账号。仓库无需构建步骤。
验证步骤(来自 README):
- 设置 → GitHub 账号 页面可见。
- 若本机
gh已登录,「一键关联」后应显示 GitHub 用户名和 scope。 - 在对话中让 Agent 调用
github工具执行status或list_repos。
三种关联方式¶
1. 本机 GitHub CLI(推荐)¶
插件检测 gh auth status。若本机已执行过 gh auth login,在设置页点击「一键关联」即可,无需 OAuth App,也不把 token 存进 DSH。
配置项 autoLinkGhCli:代码默认 false;README 说明本机示例配置为 true——启动时若尚未绑定且 CLI 已登录,可自动完成关联。改为 false 可关闭;设置页「解除关联」会写入 opt-out,直到手动关联前不再自动关联。
2. Personal Access Token¶
在 GitHub 创建 token(README 推荐 fine-grained,只授权需要的仓库),粘贴到设置页。Token 写入 DSH credentials,不写入 localStorage。
3. OAuth App 设备授权¶
适合不想用本机 CLI 的场景(无 Client Secret 的设备流):
- GitHub → Settings → Developer settings → OAuth Apps → New OAuth App
- 勾选 Enable Device Flow
- 将 Client ID 写入插件配置,例如:
- id: github-account-link
name: 'dsh-github-link'
config:
clientId: 'Iv1.xxxxxxxxxxxx'
scopes: 'read:user public_repo'
clientId 为空时,设置页设备授权按钮不可用。scopes 默认 read:user public_repo;CLI 方式沿用 gh 已有 scope。
配置字段¶
| 字段 | 默认值 | 说明 |
|---|---|---|
clientId |
空 | OAuth App Client ID;为空时设备授权不可用。 |
scopes |
read:user public_repo |
设备授权请求的 scope。 |
allowMutations |
true |
是否允许 Agent 创建 Issue / 评论。 |
autoLinkGhCli |
代码默认 false |
启动时若已登录 CLI 且没有绑定,是否自动关联。 |
典型用法¶
在对话中用自然语言驱动 Agent 调用 github 工具,README 示例:
列出我的 GitHub 仓库
查看 qichuang321/dsh-plugin-browser 的 open issues
在 owner/repo 创建一个 issue,标题是“...”,正文是“...”
也可直接要求执行 status 或 list_repos 做连通性检查。
适用场景与排查¶
适合:已在 DSH Web 中使用 Agent,需要只读或轻量 Issue 协作(列仓库、看 Issue、开 Issue、评论),且希望凭据与 DeepSeek 账号一一对应、尽量复用本机 gh 登录的场景。
注意:
- 解除关联会删除 DSH 内记录并停止自动关联,不会退出 GitHub CLI,也不会自动吊销 GitHub 上的 token。
- CLI 切换账号后,旧绑定可能显示不可用,需重新关联。
- 401:token 失效,重新关联。
- 403 / rate limit:按 GitHub API 速率限制后重试。
- 设置页 404:确认插件已安装且 DSH Web 已重新加载。
结尾¶
dsh-github-link 把 DeepSeek 账号与 GitHub 绑定收拢到 DSH 设置与 credentials,并通过受控 github 工具暴露仓库与 Issue 能力,适合在 Harness 生态里做联网协作而不自行维护 token 管线。