dsh-github-bridge:连接 DSH 与 GitHub 的插件

前言

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_usergithub_list_reposgithub_get_repo
  • Issues:github_list_issuesgithub_get_issuegithub_create_issue
  • Pull Requests:github_list_pull_requests
  • 文件内容:github_get_file
  • 搜索:github_search_repositories
  • 认证辅助:github_auth_statusgithub_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 参数。

在配置页面完成登录

登录可以先在插件配置页完成:

  1. 打开 设置 → 插件,进入 dsh-github-bridge 卡片。
  2. 填入 Client ID,并保存。
  3. 点击卡片上的 Login with GitHub。
  4. 按卡片展示的验证 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
羽毛球分组比赛记分
小程序二维码

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

小夜