Skip to content

v1.0.2

Latest

Choose a tag to compare

@Noob-stupid Noob-stupid released this 12 Oct 13:09

这一版解决什么

别的用户装完用不了。 宿主端插件以前只在两个位置找登录工具 DSH-GitHub-Login.exe:

<DSH_HOME>/dsh-github-login/dist/DSH-GitHub-Login.exe
D:/dsh/dsh-github-login/dist/DSH-GitHub-Login.exe      ← 作者本机路径

第二行在任何别的机器、任何别的平台上都永远命中不了,而 npm 包里不带 exe ——
于是新用户点"登录 GitHub"只会拿到一句提示,既没有工具,也没有"去哪拿"的说明。

改了什么

  • 删掉作者本机路径。候选位置现在全部由规则推导:环境变量 / <DSH_HOME> / 插件自身安装目录,一条字面量都没有。
  • 首次使用自动获取:没有工具时,插件自己从本仓库 Release 下载 exe,边下边算 SHA-256,
    与发布方的 .sha256 不符就拒绝启用,可疑文件立即删除,绝不启动。
    并发唤起只下载一次;网络抖动最多重试 3 次,校验和/格式这类"重试也没用"的失败立即停。
  • 失败不再静默:拿不到工具时回一条能照着做的指引(下载地址、校验和地址、落盘路径、
    两个覆盖用环境变量),并原样带上失败原因(下载 404 / 校验和不符 / 网络不可达)。
  • 新增 GET /github-auth/tool:在不在、装在哪、候选列表、是否正在下载,给面板和排障用。
  • README 补上"新用户怎么拿到并使用登录工具"的完整路径 + 帮助区的对应条目。

别人怎么拿到 exe(本版的重点)

通常不用管 —— 第一次点登录时插件会自动下载并校验,落盘到:

<DSH_HOME>/dsh-github-login/DSH-GitHub-Login.exe      # DSH_HOME 缺省 ~/.dsh
下载地址:https://github.com/Noob-stupid/dsh-github-login/releases/latest/download/DSH-GitHub-Login.exe

自动下载不可用(网络受限 / 需要镜像源)时,按提示手动装:

  1. 从本页下载 DSH-GitHub-Login.exe(和它的 .sha256)
  2. 放到 <DSH_HOME>/dsh-github-login/DSH-GitHub-Login.exe
  3. 或者用环境变量指路:DSH_GITHUB_LOGIN_EXE=<exe 绝对路径>;
    想换分发源用 DSH_GITHUB_LOGIN_RELEASE_BASE_URL=<.../latest/download 基址>

怎么校验

sha256sum DSH-GitHub-Login.exe
# bdd670c7c6add6a502fcb9ce4abe22a0dc5330b7e6508f4c6d1c8eb73dbb7206  DSH-GitHub-Login.exe

本版 exe 与 v1.0.1 的那份是同一份字节(本体没有改动,只是获取链路变了),因此校验和与 v1.0.1 相同;
上方的 DSH-GitHub-Login.exe.sha256 就是它的官方校验和(88 字节,<哈希><两空格><文件名> 格式)。
插件自动下载时用的就是同一个值,不匹配会拒绝启用。

测试

npm test → 23 项全绿(含新增的可移植性断言):

  • 入库源码/文档/测试文件里不得出现机器专用绝对路径(白名单逐条登记,无整文件豁免);
  • 候选列表每一项都能由规则推导(不含盘符字面量,且返回值都落在可推导根下);
  • 自动下载的 sha256 不匹配必须拒用,且不留下任何产物(用本地 HTTP 服务器构造坏哈希走失败分支);
  • 上面三条都做过变异验证:把缺陷写回去必红、还原必绿,且逐字节还原。

平台说明

登录窗口目前仍只有 Windows 的便携 exe;Linux/macOS 上插件会给出"暂无可用登录工具"的明确指引,
而不是静默失败。令牌文件(<DSH_HOME>/github-auth.json)与设备码流程本身与平台无关,
GET /github-auth/status 在任意平台都可用。