前言¶
DSH 生态里,“一切皆插件”是一个很常见的扩展思路。对开发者来说,如果让智能体直接处理 GitHub 仓库、Issues、Pull Requests、文件内容和搜索,往往会遇到两类问题:一类是 API 请求散落在提示词或临时命令里,另一类是手动管理令牌不够顺手。
dsh-github-bridge 做的事情比较具体:给 DSH/dwsh 增加 GitHub OAuth 登录认证,并提供一组 github_* 工具,让 DSH 可以按已授权范围调用 GitHub 能力。
这是什么¶
dsh-github-bridge 是一个连接 DSH/dwsh 与 GitHub 的插件,主要包含三块内容:
- 基于 OAuth 2.0 设备码流程的 GitHub 登录认证;
- 一组覆盖仓库、Issues、Pull Requests、文件内容和搜索的
github_*工具; - 插件配置页中的
dsh-github-bridge认证卡片。
仓库地址显示为 gaolei-mark43/dsh-github-bridge,许可证为 MIT。已抓取资料中未单独署名维护者,因此本文不把某个具体维护关系当作确定事实。
核心功能¶
认证相关¶
- 使用 OAuth 2.0 设备码流程完成 GitHub 登录。
- 令牌存入 DSH 凭据服务,模型永远不会看到令牌本身。
- 提供
github_auth_status查看登录状态。 - 提供
github_logout退出登录。
工具能力¶
插件提供的工具包括:
- 通用 GitHub REST API 调用:
github_request - 用户与仓库:
github_get_user、github_list_repos、github_get_repo - Issues:
github_list_issues、github_get_issue、github_create_issue - Pull Requests:
github_list_pull_requests - 文件内容:
github_get_file - 搜索:
github_search_repositories - 认证辅助:
github_auth_status、github_logout
安装与启用¶
先在本地拿到插件目录,然后执行安装命令:
cd /path/to/dsh-github-bridge
dsh plugin --profile web add .
这条命令会把当前目录作为插件安装到 web profile 中。
安装完成后,需要重启一次 DSH。重启后,插件配置卡片会出现在 设置 → 插件 中。
配置与登录¶
先准备 GitHub OAuth App¶
使用 OAuth 登录时,需要配置 GitHub OAuth App 的 Client ID。设备码流程不需要 client_secret。
创建或检查 OAuth App 时,注意以下几点:
- 必须勾选
Enable Device Flow,否则登录会报device_flow_disabled。 - 建议取消勾选
Expire user access tokens。该插件只存 access token,暂未支持 refresh token 刷新;如果开启令牌过期,过期后登录会失效。 scopes默认为repo,可选public_repo等;权限按所填范围生效。oauthBaseUrl默认为https://github.com,GitHub Enterprise 场景下可以修改。baseUrl默认为https://api.github.com。defaultOwner/defaultRepo是可选便利项;不填时,相关工具会要求显式给出owner/repo参数。
在配置页面完成登录¶
登录可以先在插件配置页完成:
- 打开 设置 → 插件,进入
dsh-github-bridge卡片。 - 填入 Client ID,并保存。
- 点击卡片上的 Login with GitHub。
- 按卡片展示的验证 URL 和一次性代码完成授权。
配置页面填入的值优先级高于 patch 层配置;清空某个字段后,会回退到 patch 层配置的值。
也可以在同一张卡片里手动粘贴令牌。这里只接受访问令牌,例如 ghp_... 或 github_pat_...;Client ID 不是访问令牌,粘贴后会被拒绝。
典型用法¶
安装并登录后,可以直接对 DSH 提出这些请求:
- 列出我的 GitHub 仓库
- 读取
my-org/my-repo的 README - 列出
my-org/my-repo的 open issues - 在
my-org/my-repo创建 issue,标题是……,内容是…… - 搜索 GitHub 上关于 dsh 的 TypeScript 插件
- 我的 GitHub 登录状态怎么样?(
github_auth_status) - 退出 GitHub 登录(
github_logout)
DSH 会根据请求调用对应的 github_* 工具。
适用场景与注意¶
适合需要让 DSH/dwsh 直接查询 GitHub 仓库、Issues、Pull Requests、文件内容或执行搜索的开发者。
使用前注意几点:
- 插件以当前 DSH 进程权限运行。
- 安装前建议检查源码与许可证。
- 本项目许可证为 MIT。
- 社区目录是独立站点,不是 DeepSeek 官方应用商店。
结尾¶
dsh-github-bridge 的价值不在于替换 GitHub 本身,而是把 GitHub 登录认证和常用 github_* 操作收进 DSH 插件里,减少手工管理令牌和拼接 API 请求的成本。
相关链接:
- GitHub:https://github.com/gaolei-mark43/dsh-github-bridge
- 目录页(来自插件线索,未在本次核对资料中确认):https://www.skillhub.cn/plugins/gaolei-mark43/dsh-github-bridge