同组织下GitHub Actions拉取私有npm包报403需修改哪些设置?
解决GitHub Actions拉取同组织私有npm包403问题
核心原因
仓库B的Actions中默认的GITHUB_TOKEN仅拥有仓库B自身的权限,没有访问仓库A私有包的权限——哪怕两个仓库同属一个组织。无需使用PAT,只需调整两处设置即可解决问题。
步骤1:开放仓库A的包访问权限给组织
- 进入仓库A的GitHub页面,点击顶部的「Settings」
- 左侧菜单选择「Packages」,找到需要共享的npm包,点击「Package settings」
- 在「Manage access」区域,点击「Add collaborator」
- 输入你的组织名称,选择后设置权限为「Read」(仅需拉取权限)
步骤2:为仓库B的Actions添加包读取权限
在仓库B的Workflow YAML文件中,为运行的job显式添加packages: read权限(默认的GITHUB_TOKEN不包含该权限):
jobs: build: runs-on: ubuntu-latest # 新增权限配置 permissions: packages: read steps: - name: authorize github npm run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> .npmrc - run: yarn install --frozen-lockfile
额外验证
确认仓库B根目录提交的.npmrc配置正确:
@<org-name>:registry=https://npm.pkg.github.com
内容的提问来源于stack exchange,提问作者swizzard
相关产品推荐
相关产品推荐

