深入解析 GitHub Token 与 NPM Token:自动化发布的完整指南
我们在配置github自动化发布的时候,总会用到secrets.GITHUB_TOKEN和secrets.NPM_TOKEN,本文我们讲解下这两个变量的配置。
一、GitHub Token:自动化工作流的内置凭证
1.什么是 GITHUB_TOKEN?
根据官方文档,GitHub 在每个工作流作业开始时自动创建唯一的 GITHUB_TOKEN:
- 它是 GitHub App 安装访问令牌
- 权限仅限于当前仓库
- 令牌在作业结束时或最多 24 小时后过期
- 通过 ${{ secrets.GITHUB_TOKEN }} 引用
2.关键特性
- 自动创建:无需手动生成,开箱即用
- 权限受限:默认权限取决于仓库设置
- 安全隔离:令牌权限仅限于当前仓库
- 自动过期:最大生命周期 24 小时
3.使用
使用时,需要在项目的 Settings - Actions - General 当中,勾选Read and write permissions
二、NPM Token:包发布的专用凭证
1.登录 npm 账户
访问 npmjs.com 并登录
2.生成访问令牌
- 点击右上角头像 → Access Tokens
- 点击 “Generate New Token”
- 创建的时候选择“Automation”
3.保存并使用
- 复制生成的 Token(格式:npm_xxxxxxxxxx)
- 在 GitHub 仓库 Secrets 中添加为 NPM_TOKEN,位置如下图:
三、工作流中的最佳实践
1. 组合使用示例
jobs:release:steps:- name: Publish Packagerun: npm publishenv:NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
2. 安全增强策略
最小权限原则:
permissions:contents: writepackages: write
定期轮换
- NPM Token 每 3 个月更新一次
- 删除未使用的历史 Token
审计监控
# 检查 NPM Token 列表
npm token list# 检查 GitHub 审计日志
https://github.com/settings/security-log