mise 日常命令改走 mise-versions:没配 GitHub token 也不用撞 60 次/小时限流
项目信息:mise 仓库 github.com/jdx/mise,release notes 见 github.com/jdx/mise/releases,时间点在 2026-10 中旬。
v2026.10.11:日常命令不再调用 api.github.com
mise install、mise exec、shims、mise outdated、mise lock、mise self-update 以及 attestation 检查,现在从 mise-versions 读取 GitHub release 数据、tag 与 attestation。以前这些命令会去打 api.github.com,没配 GitHub token 的用户共用那 60 次/小时的匿名配额,做几次版本解析就容易撞限流。改完之后,这条路径不再经过 GitHub API。
mise-versions 接管了哪些数据
当 use_versions_host 开启(默认值)时,mise-versions 成为公共 GitHub 元数据的唯一来源,覆盖范围包括:
- release 列表与 latest
- git tag,包括 aqua 的
github_tag包、ubi、go 这几条后端 - artifact attestation,包括 aqua 的
predicate_type过滤 - 校验和不匹配提示里显示的 digest
也就是说,走这几个后端的版本解析与校验流程,拿到的都是 mise-versions 的数据。
请求失败时的行为变化
mise-versions 请求失败时,mise 直接报错,并在错误信息里指明 use_versions_host = false 这条出路。它不会静默回退去访问 api.github.com——回退会让限流问题重新出现,也会让数据来源变得不明确。看到这个提示时,要么排查 mise-versions 的可达性,要么显式关掉 use_versions_host。
仍然直连 GitHub 的情况
以下场景不走 mise-versions:
- mise-versions 未列出的仓库,且你配了 token(对应私有仓库场景)
- paranoid 模式下的 attestation 检查
- 显式设置
use_versions_host = false - 配置了 GitHub
url_replacements - 使用自定义
api_url
换句话说,公共仓库的常规操作默认走 mise-versions;私有仓库、paranoid 校验和自定义地址这几类仍然需要直连 GitHub。
同批版本的其他变更
v2026.10.11 同时加了两个命令:mise bootstrap --upgrade 和 mise env --paths。前者给 bootstrap 流程补上升级入口,后者用于输出路径信息。同一版本还修掉了远程 task 文件的一处信任缺口。
v2026.10.9 修的是一个信任绕过:不可信的 path: 工具版本能把某个目录塞进 PATH。用 path: 指向来源不可控的目录时,这个漏洞会直接把该目录暴露到 PATH 中,属于需要尽快升级的修复。
v2026.10.10 起,task 可以用 skip_if 自我跳过;bootstrap 增加了 Snap、Fedora COPR 支持,以及 --adopt 的分支选择。
仓库地址:github.com/jdx/mise。