默认GITHUB_TOKEN无法从GitHub Registry下载包的权限问题
问题分析与解决方案
核心原因:默认GITHUB_TOKEN的权限范围限制
默认的GITHUB_TOKEN仅拥有触发Workflow的当前仓库的权限,无法访问同组织/个人账号下其他私有仓库的包资源——这是GitHub的安全限制,防止Token被过度授权。手动创建的PAT因为明确赋予了write:packages权限,所以能跨仓库访问。
需补充的配置步骤:
给目标包添加跨仓库访问授权
进入存放目标包的仓库,打开Settings > Packages页面,找到对应包的Manage access选项,添加触发Workflow的仓库作为授权主体,授予Read权限(若需发布则选Write)。显式声明Workflow的Token权限(推荐)
在Workflow的jobs段中,明确指定GITHUB_TOKEN的权限范围,确保包含packages:read(发布场景需加packages:write),示例配置:jobs: your-job-name: runs-on: ubuntu-latest permissions: packages: read steps: - uses: actions/checkout@v4 # 后续Yarn依赖安装等步骤
关键提醒
仓库的Actions通用设置仅控制Token在当前仓库内的操作权限,和跨仓库的包访问权限是两个独立的控制维度,所以即使开了通用读写,仍需单独配置包的跨仓库授权。
内容的提问来源于stack exchange,提问作者Benjamin
相关产品推荐
相关产品推荐

