DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-github-auth

d

dsh-github-auth

Manifest valid

Manage local GitHub CLI accounts, web authorization, SSH identity and repository permissions in DeepSeek Harness.

UI (client)hasBundlePatch

dsh-github-auth

在 DSH 插件页面与设置页面中管理本机 GitHub CLI 授权。优先复用已安装的 gh;首次缺少工具时可一键准备。不会另存令牌,也不会把完整令牌传给界面。

0.3.0:首次使用引导

  • 「准备工具 → 登录账号 → 开始使用」分步引导,已有账号保持直接进入概览。
  • 缺少 gh 时一键下载 GitHub CLI 官方稳定版,按操作系统与架构选择安装包,校验官方 SHA-256 清单后解压并检查版本。
  • 安装到当前用户的 ~/.local/bin/gh(Windows 为 gh.exe);不安装包管理器、不需要管理员权限,不修改 PATH,也不覆盖已有文件。
  • 准备过程显示进度,可取消、重试;缺少系统解压工具或网络不可用时提供官方手动安装入口。
  • 已手动安装后点击「我已安装,重新检测」即可识别,无需重启 DSH。
  • 支持 macOS、Linux、Windows 的 x64 / ARM64 官方便携包;本机实际验证 macOS ARM64 下载至隔离目录的完整链路。
  • 36 项测试覆盖安装、取消、重复请求、校验与首次使用界面。

0.2.1:热更新样式修复

  • 修复旧实例卸载时移除样式、但授权页面仍显示而导致的裸排版。
  • 插件详情与全局设置入口独立挂载时,都会在首帧恢复当前版本的作用域样式。
  • 多个入口复用一份样式,不重复注入;原有登录、退出和授权操作保持不变。
  • 新增样式保留与丢失恢复回归测试,21 项测试通过。

0.2.0:界面与交互

  • 账号信息压缩为概览卡:本地字母头像、授权状态、凭据来源、Git 协议与可读权限标签。原始 scope 保留在提示中。
  • 刷新与添加账号放在顶部;退出为较低视觉权重的账号操作,仍需明确确认。
  • SSH 与仓库检查分别反馈状态、进度、结果和错误;快速连点不产生重复请求,重试清除过时结果。
  • 远端撤销、SSH 密钥入口与 CLI 诊断折叠到高级选项,默认页面更紧凑。
  • 登录显示两步引导;确认区获得键盘焦点,Esc 取消后返回触发按钮;减少动态效果的系统偏好得到尊重。

功能

  • 查看 github.com 的账号、当前账号、授权验证结果、权限范围、凭据来源和 Git 协议。
  • 使用 gh 的官方网页登录流程添加或重新授权账号;显示一次性代码、授权入口与等待状态,支持取消等待。
  • 切换当前账号和退出指定本机账号,执行前确认影响范围。
  • 单独检查 SSH 身份;只读检查指定仓库的 API 写入权限,说明分支保护与 SSH 仍可能影响 Git 推送。
  • 打开 GitHub 应用授权与 SSH 密钥管理页面。彻底撤销 GitHub CLI 应用授权可能影响其他设备;最终操作由用户在官方页面确认。

使用

将插件加入 DSH profile,然后在插件页面准备工具并登录。宿主使用 Node 18 或更新版本,无额外运行时 npm 依赖。

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

打开「插件 → GitHub 授权」即可使用;「设置 → GitHub 授权」提供相同界面。

首次使用:缺少工具时点击「一键准备工具」,下载完成后直接点击「连接 GitHub 账号」。工具已安装会跳过准备步骤;有现有账号则直接显示概览。

登录:阅读权限说明后开始网页登录,输入一次性代码,在 GitHub 页面确认账号和权限。完成后自动显示账号。

手动安装:展开备用安装说明,按 GitHub CLI 官方说明 安装,再点击「我已安装,重新检测」。在插件运行时安装工具也无需重启。Windows 等环境若终端尚未包含用户工具目录,其他程序需通过完整路径调用 gh;插件能直接找到它。

本机退出仅移除 gh 登录配置与该账号的本机存储凭据。GitHub 远端令牌和 SSH 密钥需要在官方页面单独管理。环境变量 GH_TOKEN / GITHUB_TOKEN 优先控制授权时,本机账号变更功能禁用,需在原启动环境管理变量。

边界

  • 第一版仅管理 github.com;Enterprise 主机不在此页面中列出。
  • 登录授权由 gh 处理,通常请求 repo/read:org/gist。插件不接收密码、不设置额外 scopes、不上传或生成 SSH 密钥、不改写 Git 协议或 git credential helper。
  • 凭据保管方式由 gh 决定;钥匙串不可用时可能退回 gh 配置文件,界面显示实际来源。
  • 本机网页 API 限制来源;修改操作必须 POST JSON、携带页面取得的随机 nonce 并明确确认。只接受固定操作与严格校验的账号/仓库参数;不用 shell 拼接。
  • 登录等待最多 15 分钟;取消或停用插件时终止子进程。查询有时间和输出大小限制。
  • SSH 检查不接受新的主机密钥;需要手动配置并核对 GitHub 主机指纹。SSH 与当前 gh 账号可能不同。
  • 仅登录等待或准备工具期间短时轮询;普通页面不定时查询。账号状态复用 5 秒缓存,手动刷新绕过缓存。
  • 本机退出、切换对该电脑共用 gh 的其他工具同样生效;插件不是一份独立授权。

开发与测试

客户端采用 DSH 单文件 ModuleLoader 工厂,宿主仅使用 Node 内置模块。安装开发依赖后执行 npm test。测试覆盖本机接口守卫、脱敏、参数校验、账号操作、登录状态、取消/卸载、SSH 退出码和客户端确认流程;真实登录/退出不用于测试现有账号。

本机验证

36 项回归测试通过;在 DSH 已安装列表与插件页面验证了账号信息、网页登录和退出前确认界面。首次使用页面通过独立测试预览验证,不改动既有账号。仓库 API 权限和 SSH 连接已进行真实只读检查。登录完成、切换和退出使用模拟进程/账号测试,不改变用户的现有授权。

Comments

Loading…