用途:审计和改进 npm 包发布的安全状况,包括账号安全、npm 可信发布(OIDC)策略、GitHub 仓库加固、令牌使用与发布工作流规范。基于 e18e 发布指南整理。
主要能力:先检查仓库(package.json、锁文件与 packageManager、.npmrc/.yarnrc.yml、.github/workflows/*、Changesets/changelogithub/semantic-release/release-it 等发布工具、工作流中的 npm/GitHub 令牌或 NODE_AUTH_TOKEN);将请求分类为审计(按 P0-P3 严重度报告风险并尽量给出文件与行号)、实施(做限定范围的仓库改动并运行验证)或策略(说明权衡并指出仅用户可做的设置)。可编辑工作流、更新包管理器配置、移除发布步骤中的 NODE_AUTH_TOKEN、添加 Dependabot/Renovate、运行 publint、工作流 lint、测试与构建,并输出用户需自行完成的外部设置步骤。
必要用法:使用可信发布时,发布步骤不要添加 NODE_AUTH_TOKEN,改用 OIDC;如私有依赖需要安装认证,仅对只读安装步骤保留作用域受限的令牌。发布步骤需使用 npm CLI ≥ 11.5.1(可 npm i -g npm)及官方支持的 Node.js 版本。工作流须将构建与发布分成独立作业,所有 action 固定到完整提交 SHA,显式声明最小权限 GITHUB_TOKEN,检出设置 persist-credentials: false,安装使用 npm ci --ignore-scripts(或在 .npmrc 设 ignore-scripts=true)。可参考模板或 npx @e18e/setup-publish。维护方面可运行 npx actions-up 迁移到 SHA 固定、zizmor .github/workflows/publish.yml 检查注入与权限、npx publint 校验 package.json 与 exports。
适用场景:新包发布配置、既有仓库安全审计、团队发布流程规范、令牌与权限收紧。
限制:账号 2FA、npm 可信发布者设置、发布访问需 2FA 且禁用令牌、GitHub Actions 限制、分支/标签规则集与不可变发布等仅能由已认证的用户或 API 完成,未经验证不得声称已配置;涉及可信发布要求、支持的 CI、npm CLI 与 Node.js 最低版本、provenance 行为等应查阅当前官方文档;GitHub 环境审批尚不支持 2FA 时,独立维护者需评估风险。资料中未给出具体价格或平台支持细节。