You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Enterprise 3.7 Actions发布包npm 401认证失败及包可见性问题求助

解决GitHub Enterprise 3.7 Actions发布npm包401认证失败问题

核心问题分析

你遇到的401错误本质是token来源不匹配或npm registry未指向GHE实例:用github.com的token能成功是因为默认发布到github.com的包仓库,而非你的GHE实例。

具体修复步骤

1. 生成正确的GHE Personal Access Token(PAT)

  • 登录你的GitHub Enterprise实例,进入个人设置 → Developer settings → Personal access tokens
  • 生成新token时,必须勾选以下权限:
    • write:packages(允许发布包)
    • read:packages(允许拉取包)
    • repo(如果仓库是私有,需此项权限)
  • 复制生成的token,替换仓库密钥NPM_TOKEN的值,确保存的是GHE的PAT,而非github.com的token。

2. 配置npm指向GHE的包仓库

方式一:在项目根目录添加.npmrc文件

# 全局registry指向GHE实例
registry=https://npm.pkg.<你的GHE实例域名>/
# 组织级包指定GHE registry(替换为你的组织名)
@<你的组织名>:registry=https://npm.pkg.<你的GHE实例域名>/
# 认证配置,引用仓库密钥
//npm.pkg.<你的GHE实例域名>/:_authToken=${NPM_TOKEN}

方式二:在Actions workflow中动态配置

在publish步骤前添加认证命令:

- name: 配置GHE npm仓库认证
  run: |
    echo "//npm.pkg.<你的GHE实例域名>/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc
    echo "@<你的组织名>:registry=https://npm.pkg.<你的GHE实例域名>/" >> .npmrc
    echo "registry=https://npm.pkg.<你的GHE实例域名>/" >> .npmrc

3. 确保publish命令无错误指向

检查workflow中的npm publish命令,不要添加--registry=https://npm.pkg.github.com/这类指向github.com的参数,确保发布目标是GHE实例。

4. 本地验证(可选)

把GHE的PAT填入本地.npmrc,运行npm publish --dry-run,如果能成功执行无401错误,说明token和registry配置没问题。

内容的提问来源于stack exchange,提问作者Hao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:45:30