v0.9.0
变更
-
独立 MCP 包改发布到公共 npm registry(
registry.npmjs.org,此前是 GitHub Packages)。0.7.0 时为了让发布流程「不需要额外 secret」,把
@echo-note/gitea-toolkit-mcp发到了
GitHub Packages。但那个源有个硬伤:匿名装不了 —— 连公开包也要求先配 PAT 与
~/.npmrc;而且package-lock.json会硬编码 registry 地址,一旦提交,协作者
npm install就会因为没有令牌而失败。用户实际只能去 Releases 下 tarball,体验很差。而 ModelScope MCP 广场对「可托管部署」的 STDIO 型服务明确要求包在 npmjs.org / PyPI 上。
因此改回公共 registry,现在一行即可用:npx -y @echo-note/gitea-toolkit-mcp --url https://gitea.example.com --token <令牌>
顺带:
- 加上
npm publish --provenance(来源证明,把「这个包确实由本仓库的这次构建产出」
写进 npm 的签名记录) - 移除为 GitHub Packages 写的包级
.npmrc(作用域映射不再需要) - Releases 里的
.tgz附件保留,作为离线 / 固定版本场景的备用通路
启用方式:仓库 secret
NPM_TOKEN(未配置时静默跳过,不阻断发版)。
唯一前置条件:@echo-note这个 scope 需已在 npmjs.org 注册。 - 加上
工程
-
npm 发布支持两种认证,且凭据类失败不再阻断发版。
首次真实发布时踩到 403。原因不是权限范围(令牌对
echo-note组织有读写权),
而是账号开启 2FA 后 granular token 必须显式启用「绕过 2FA」,否则 npm 拒绝发布:Two-factor authentication or granular access token with bypass 2fa enabled
is required to publish packages.更麻烦的是它把整条流水线卡住了 —— 两个扩展市场其实已经发布成功,
却因为releasejob 需要publish-npm成功而一直建不出 GitHub Release。现在两处改进:
- 认证支持「
NPM_TOKEN」与「OIDC 可信发布(无需任何令牌)」二选一。
后者需在 npm 包设置里配置 Trusted Publisher 指向本仓库的ci.yml;
本 job 已声明id-token: write,满足其要求。注意它要求包已存在,
所以首次发布只能用令牌或本地手动发一次。 - 凭据类错误(401/403/ENEEDAUTH/EOTP/2FA)降级为「醒目提示 + 跳过」,
不再阻断 Release —— 凭据是配置问题,不该让已经发出去的市场版本连 Release 都建不出来。
配置好后重跑即可补齐,发布步骤本身是幂等的。
- 认证支持「
-
CI 的发布 job 由
publish-ghpkg更名为publish-npm,权限从packages: write
改为id-token: write(--provenance与 OIDC 都需要)。 -
README 的「接入 AI 助手」一节按公共 registry 重写(原先那段 GitHub Packages 的
一次性认证说明已不再需要)。
完整变更对比:v0.8.5...v0.9.0