Skip to content

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 18 Sep 06:18

变更

  • 独立 MCP 包改发布到公共 npm registryregistry.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.

    更麻烦的是它把整条流水线卡住了 —— 两个扩展市场其实已经发布成功
    却因为 release job 需要 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