dsh-liao-github:在 DSH 里管理本机 GitHub CLI 授权

前言

在 DeepSeek Harness(DSH)里做智能体或自动化任务时,经常要拉私有仓库、调 GitHub API 或走 SSH 推送。这些能力通常依赖本机已登录的 GitHub CLI(gh),而 gh 的安装路径、网页授权、多账号切换和权限范围,往往要自己在终端里查文档、记命令。DSH 社区插件 dsh-liao-github(维护者 oliblue-evan,分类 admin-security)把上述操作收敛到插件页与设置页:优先复用本机已有的 gh,缺工具时可按引导准备,登录走官方网页流程,且不另存完整令牌、不把完整令牌传给界面。

这是什么

dsh-liao-github 是在 DSH 插件页面与全局设置中管理本机 GitHub CLI 授权的界面与后端逻辑。它面向 github.com(第一版不包含 GitHub Enterprise 主机列表),通过调用 gh 完成账号查看、网页登录、切换与本机退出,并提供 SSH 身份检查、指定仓库 API 写入权限的只读探测,以及跳转到 GitHub 官方的应用授权与 SSH 密钥管理页。

凭据的存储方式由 gh 决定;插件不接收密码、不设置额外 scopes、不上传或生成 SSH 密钥,也不改写 Git 协议或 git credential helper。

核心功能

下面按 README 已列能力归纳,均为插件自述行为。

账号与授权

  • 查看 github.com 账号、当前账号、授权验证结果、权限范围、凭据来源和 Git 协议。
  • 使用 gh 官方网页登录流程添加或重新授权:展示一次性代码、授权入口与等待状态,支持取消等待(登录等待最多 15 分钟)。
  • 切换当前账号、退出指定本机账号,执行前需确认影响范围;本机退出仅移除 gh 登录配置与该账号本机存储凭据,远端令牌与 SSH 密钥需在 GitHub 官方页面单独管理。

工具准备(0.3.x 引导)

缺少 gh 时,界面提供「准备工具 → 登录账号 → 开始使用」分步引导;已有账号可直接进入概览。

一键准备会下载 GitHub CLI 官方稳定版,按操作系统与架构选择安装包,校验官方 SHA-256 清单后解压并检查版本。安装目标为当前用户的 ~/.local/bin/gh(Windows 为 gh.exe):不依赖包管理器、不需要管理员权限、不修改 PATH、不覆盖已有文件。过程可显示进度、可取消与重试;缺少解压工具或网络不可用时提供官方手动安装入口。手动安装后点击「我已安装,重新检测」即可识别,无需重启 DSH。支持 macOS、Linux、Windows 的 x64 / ARM64 官方便携包。

SSH 与仓库检查

  • 单独检查 SSH 身份;SSH 检查不接受新的主机密钥,需事先配置并核对 GitHub 主机指纹,且 SSH 身份可能与当前 gh 账号不一致。
  • 只读检查指定仓库的 API 写入权限,并说明分支保护与 SSH 仍可能影响 Git 推送。

界面与入口

  • 账号信息以概览卡展示:本地字母头像、授权状态、凭据来源、Git 协议与可读权限标签,原始 scope 保留在提示中。
  • 「插件 → GitHub 授权」与「设置 → GitHub 授权」提供相同界面;刷新与添加账号在顶部,远端撤销、SSH 密钥入口与 CLI 诊断折叠在高级选项。

安全与边界(与本机 API)

  • 本机网页 API 限制来源;修改操作必须 POST JSON、携带页面取得的随机 nonce 并明确确认,只接受固定操作与严格校验的账号/仓库参数。
  • 若环境变量 GH_TOKEN / GITHUB_TOKEN 优先控制授权,本机账号变更功能会禁用,需在原启动环境管理变量。
  • 本机退出、切换对该电脑共用 gh 的其他工具同样生效;插件不是一份独立授权。

宿主需 Node 18 或更新版本;客户端采用 DSH 单文件 ModuleLoader 工厂,运行时无额外 npm 依赖(开发测试见仓库说明)。

安装与启用

将插件加入 DSH profile(以下命令来自仓库 README):

dsh plugin --profile desktop add github:oliblue-evan/dsh-liao-github

安装后打开「插件 → GitHub 授权」即可使用;全局「设置 → GitHub 授权」入口一致。插件声明会访问 github.com、api.github.com、官方 release 资源及 ssh://git@github.com:22 等网络端点,并需要 spawn gh、管理 GitHub CLI 相关凭据与配置等权限(详见仓库 package.json 中的 disclosure)。

典型用法

  1. 首次使用:若缺少 gh,点击「一键准备工具」,完成后点击「连接 GitHub 账号」;工具已安装则跳过准备;若本机已有 gh 账号,直接显示概览。
  2. 网页登录:阅读权限说明后开始网页登录,在界面输入一次性代码,在 GitHub 页面确认账号和权限;完成后自动显示账号。登录通常由 gh 请求 repo / read:org / gist 等范围。
  3. 手动安装 gh:展开备用安装说明,按 GitHub CLI 官方说明 安装,再点击「我已安装,重新检测」。Windows 等环境下若终端 PATH 未包含用户工具目录,其他程序可能需用完整路径调用 gh;插件本身能定位到已安装的二进制。
  4. 检查与高级操作:在页面刷新账号状态(账号状态有 5 秒缓存,手动刷新可绕过);在高级选项中做 SSH 检查、仓库 API 权限探测,或打开 GitHub 应用授权与 SSH 密钥管理页(彻底撤销 GitHub CLI 应用授权可能影响其他设备,由用户在官方页确认)。

适用场景与注意

适合谁:在 DSH 桌面 profile 下开发、需要可视化管理本机 gh 登录与权限、又不想在插件里重复实现 OAuth 或自管令牌的开发者。

使用前请知悉:

  • 插件以当前 DSH 进程权限运行;安装前应在 GitHub 阅读源码与 MIT 许可证,并核对社区目录页与仓库 disclosure 中的网络与权限声明。
  • 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;星标与版本以你安装时仓库与目录页为准(README 变更记录含 0.2.0–0.3.0 功能说明,package 版本为 0.3.1)。
  • 仅管理 github.com;Enterprise 不在此页列出。普通页面不定时轮询账号,仅在登录等待或准备工具期间短时轮询。

结尾

dsh-liao-github 把本机 GitHub CLI 的安装准备、网页授权、多账号与本机退出,以及 SSH / 仓库权限检查,放进 DSH 的统一界面,并明确不托管完整令牌、不替代 gh 的凭据模型。若要安装或查看元数据,可访问社区目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/oliblue-evan/dsh-liao-github
  • 源码:https://github.com/oliblue-evan/dsh-liao-github
羽毛球分组比赛记分
小程序二维码

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

Xiaoye