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

如何自动化升级GitHub上的私有Yarn包?

解决Jenkins自动化升级GitHub私有npm包的权限问题

核心问题排查

你遇到的权限问题大概率源于以下几点:

  • Yarn版本与配置文件格式不匹配(Yarn 1用.yarnrc,Yarn 2+用.yarnrc.yml)
  • 配置中的npm scope与私有包实际scope不一致
  • GitHub Token权限不足或未正确注入构建环境

针对不同Yarn版本的修正方案

1. Yarn 2+(Berry版本)

修正.yarnrc.yml配置

原配置中scope写的是yarn-package-publisher,但你的私有包scope是@neetesshhr,这是关键错误。修改后的配置如下:

npmScopes:
  neetesshhr:
    npmRegistryServer: 'https://npm.pkg.github.com/'
    npmAlwaysAuth: true
    npmAuthToken: ${GITHUB_TOKEN}
  • 用环境变量${GITHUB_TOKEN}替代硬编码token,避免泄露,Jenkins中通过凭据管理注入该变量
  • 确保neetesshhr与私有包的scope完全一致(比如你的包是@neetesshhr/xxx)

Jenkins执行步骤

  • 将修正后的.yarnrc.yml放入项目根目录,无需执行yarn config set .yarnrc.yml,Yarn会自动读取
  • 确保Jenkins构建环境注入了拥有read:packages权限的GitHub PAT(个人访问令牌)
  • 执行升级命令:yarn upgrade @neetesshhr/你的包名

2. Yarn 1(Classic版本)

修正.yarnrc配置

原配置中scope正确,但建议用环境变量管理token:

//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
@neetesshhr:registry=https://npm.pkg.github.com/
always-auth=true

Jenkins执行步骤

  • 用Jenkins的Credentials Binding插件,将GitHub PAT绑定为GITHUB_TOKEN环境变量
  • 确认PAT拥有read:packages权限(仅升级拉取包的话,无需写权限)
  • 执行升级命令:yarn upgrade @neetesshhr/你的包名

额外检查项

  • 验证Jenkins agent网络可访问https://npm.pkg.github.com/,无防火墙或代理限制
  • 执行yarn config list查看配置加载情况,确认registry和token已正确生效
  • 检查GitHub PAT是否过期,或权限是否被修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:02:40