基于 OIDC 的适用于 npm + GitHub 的插件发布教程

由于 npmjs 策略的更改,原本无限期的 token 变成了限制 90 天的 granular token,因此推荐使用 OIDC (Open ID Conenct) 藉由 Github Actions 进行发布。

  1. 本说明适用于采用标准 Koishi 插件格式的单插件仓库,即由 yarn setup 创建的插件仓库。同时请确认插件的 package.json 正确填写了 devDependencies(无需包含 Koishi 通用构建依赖,只需包含插件所依赖的服务插件等) 和 repository (用于生成provenance)
    image

  2. 登陆npmjs,打开插件页面(第一次发布必使用传统方法手动发布),点选 Settings。在 Trusted Publisher 中选择 GitHub Actions,Organization or user* 填写 Github 用户名,Repository* 填写仓库名,Workflow filename* 填写 publish.yml,点击 Set up connection 保存。

  1. 将以下内容保存为 publish.yml 放入仓库的 .github/workflows/
name: Publish

on:
  push:
    branches:
      - main
      - master

jobs:
  publish_npm:
    permissions:
      id-token: write
      contents: read
    uses: koikirin/buildplate/.github/workflows/publish_npm.buildplate.yml@v1

(艹怎么还真要手动带权限的好奇怪这里原本的图我还打错字了测了半天没跑动)

  1. 设置完成。此后 push 到主分支时会自动检查 packages.json 中版本号有无变化尝试进行推送
4 个赞