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

从Nx仓库通过Semantic Release发布到GitHub Packages遇权限问题求助

问题分析与解决方案

核心问题定位

你遇到的Permission not_found: owner not found错误,核心原因是包名的Scope与GitHub用户名/组织名不匹配,同时可能伴随Token权限或仓库配置的问题。

1. 包名Scope必须与GitHub用户名完全一致

你的package.json中包名是@thijsfranck/example,但GitHub用户名是thijs-franck(从仓库URLhttps://github.com/thijs-franck/example-repo.git可看出)。GitHub Packages要求包的Scope(@xxx部分)必须和你的GitHub用户名/组织名完全一致,包括连字符这类符号。

修正方法:
修改package.json的name字段:

{
  "name": "@thijs-franck/example"
}

2. 修正repository字段的directory配置

你的repository.directory写的是thijsfranck/example,但这个字段是用来指定包在仓库内的子目录路径,不是完整的用户/仓库结构。如果你的包代码在仓库的example目录下,应该改为:

"repository": {
  "type": "git",
  "url": "https://github.com/thijs-franck/example-repo.git",
  "directory": "example"
}

3. 验证NPM_TOKEN的权限与归属

  • 确保你使用的NPM_TOKEN是属于thijs-franck用户生成的,并且勾选了write:packages、read:packages权限,同时拥有目标私有仓库的访问权限。
  • 生成Token时建议选择个人访问令牌(classic),新手用这类令牌更易配置权限。

4. 确认请求地址的正确性

你提到的https://npm.pkg.github.com是GitHub Packages的官方NPM registry地址,这个是完全正确的,所有发布到GitHub Packages的请求都要指向这个地址,无需修改。

5. Semantic Release配置补充(可选)

如果上述修正后仍有问题,可以在release.config.js中明确指定npm插件的registry,确保publishConfig生效:

module.exports = {
  plugins: [
    '@semantic-release/npm',
    {
      npmPublish: true,
      registry: 'https://npm.pkg.github.com'
    }
  ]
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:15:01