问题标签 [github-package-registry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
github - 无法在 Github 注册表中安装 npm 包
我已将一个包发布到 GitHub npm 注册表。根据下面的屏幕截图,我可以在登录 GitHub 时看到该包。
在本地,不同的包将前者作为依赖项。因此我有我的package.json
:
根据文档,我还有一个与 authToken.npmrc
位于同一目录中的文件。package.json
此 authToken 具有所有必要的权限 ( delete:packages, read:packages, repo, write:packages
)
最后,我有package.json
以下两个条目。虽然我相信这些对于将包发布到 github 注册表是必要的,但不安装它们是当前的问题。
因此,当我尝试安装软件包时遇到的错误是:
当我试图了解一些有用的日志发生了什么时:使用npm install @<scope>/<package_name>@1.2.0 --loglevels verbose
,我看到:
第一个 http 请求是成功的,这似乎表明事情已正确连接和验证。但是,我不知道为什么之后我会收到 404。正如我们在上图中看到的那样,包裹显然在那里。
有没有人有类似的问题?
java - 如何使用命令行将 Maven 工件上传到 Github 包?
我正在尝试将尚未构建的 Maven 工件上传到我的组织的 GitHub 包注册表。为此,我正在使用 deploy:deploy-file Maven 插件。这是我一直在使用的命令:
结果我收到了来自 Github 的 401 错误。我已经确定:
- 我在我的组织(当前所有者)内部拥有足够的权限。
- 我使用的令牌是有效的并且具有适当的范围:我将它们全部用于测试。
此外,github 包页面指出:
为什么我在 Maven 文档中找不到有关注册表或令牌参数的任何信息?我可以在没有任何 XML 配置文件的情况下仅使用 cli 将此文件上传到组织的注册表吗?
提前致谢。
github-package-registry - 如何从 Github 包注册表中删除/删除/取消链接/取消版本包
问题:如何让一个包从 Github 包注册表中“消失”?
- 文档说:当所有版本都被删除时,你不能“删除”但一个包“消失”。
背景:
- Gradle 发布任务中的拼写错误导致发布了不应发布的包。
到目前为止的步骤:
- 我在 Github Web App 上没有找到“删除”选项。
- 我尝试通过 Github 的 GraphQL API 删除,但我需要此命令的包 ID:
- 我在 Github Web App 上没有找到完整的 packageVersionId。
- 我尝试在 API 中查询包 ID,但未能形成有效的查询:
- 我尝试使用 GraphQL API Explorer,但自动设置的令牌错过了足够的权限:
- 我没有在 Explorer Web App 上找到设置另一个访问令牌的选项。
所需的解决方案
- 我想知道是否有更简单的方法可以做到这一点,如果没有,如何获取取消链接包所需的 packageVersionIds 以便它们消失。
更新 1:它是关于发布到公共存储库的包。
github - 在 CircleCI 中安装 GitHub 包
对于我的项目,我正在尝试从 GitHub Packages 安装(而不是发布!)一个 npm 包。它托管在一个私有存储库中,该存储库位于一个组织中。我已经制作了一个个人访问令牌,具有从该 repo 和 org 读取所需的权限。所有这些都通过以下步骤在本地工作:
- 在
.npmrc
文件中设置注册表:registry=https://npm.pkg.github.com/OWNER
- 终端登录:
npm login --registry=https://npm.pkg.github.com
然后会提示:
Username
是你的标准 github 用户名Token
是使用正确权限创建的个人访问令牌Email
可以是随机的
填写完毕后,一切正常,我可以安装包,以及托管在正常 npm 注册表上的所有其他包。现在解决问题:我试图在 circleCI 上复制相同的内容,但它似乎不允许我覆盖 npm 注册表。该项目包含一个.npmrc
文件,位于该文件夹中package.json
。以下是圈子 ci conf 的一部分:
GITHUB_PACKAGES
只是一个存储在 circleCI 中的环境变量。
现在错误消息告诉我以下内容:
我尝试用谷歌搜索它,但没有任何效果。
maven - GitHub Packages 404 for maven-metadata.xml / 是否支持动态版本解析?
有没有人设法让 Maven 动态版本解析与 GitHub 包一起使用?
我希望能够使用动态版本声明依赖项并解决它,如下所示:
在幕后,Gradle(我假设也是 Maven)使用一个名为的文件中的信息,该文件maven-metadata.xml
包含存储库中存在哪些包和版本的详细信息,以将动态版本解析为特定版本(例如1.+
,可能解析为1.1.2
. 但是,当我发布到 GitHub Packages 时,Gradle 日志显示maven-metadata.xml
文件资源不存在,因此它会毫无错误地上传一个新资源。但是,当我尝试卷曲该文件时,我得到一个 404(这意味着我正在发布并且 GitHub 正在默默地删除该文件,或者该文件在 GitHub 中并且在发布后对我不可见)。
这给出了 404(当它应该解析为文件或给我一个重定向时,我可以-L
在命令上加上一个标志curl
):
这是我用于依赖解析的存储库配置关闭;我使用一个相同的插件来使用闭包maven-publish
内的插件进行发布。publishing{}
github - 如何在 circleCI 配置中添加 GitHub 身份验证信息以进行包发布?
我在我的仓库中为 CircleCI 设置了 config.yml 文件,以便将其发布为 GitHub NPM 包。
在运行 npm publish 命令之前,我们需要使用用户名、密码(个人访问令牌)和电子邮件在 GitHub NPM 注册表上进行身份验证。
我已将它们存储为环境变量,并且可以使用 ${PACKAGE_PAT}、${PACKAGE_ACCOUNT} 和 ${PACKAGE_EMAIL} 调用它们。
所以现在我对如何在这个过程中添加这些信息有 0 条线索,我真的很感激一些帮助(第一次使用 CI)。
这是我到目前为止设置的配置文件:
maven - 如何在部署期间查看 Maven 向服务器发送的内容?
我正在尝试使用 Github 的新 Actions CI 服务器将包部署到 Github 的新包功能。进展不顺利。
我认为一切都设置正确,但我收到此错误:
这似乎是在成功上传同一个 pom之后发生的:
因此,在我看来,它正在成功上传 pom,但几秒钟后却无法下载相同的 pom。
我正在使用调试开关运行部署:mvn -X -e deploy
,但我看不到 Maven 发送到服务器的确切 http 命令。
我该如何调试?是否有一些 Maven/Aether 传输或可以记录幕后发生的事情的东西?
javascript - 为 npm 注销 GitHub Packages
我正在构建一个使用私有 GitHub 包的项目。我一直在本地使用npm login --registry=https://npm.pkg.github.com
它,事后看来,这并不是最聪明的事情,因为我实际上需要在生产环境中使用它。为此,我使用 netlify,不幸的是,401 Unauthorized
每当我尝试部署它时它都会抛出。
现在,问题是我在本地机器上调试它非常困难,因为出于某种未知原因,尽管运行npm logout --registry=https://npm.pkg.github.com
. 尝试再次运行注销我得到npm ERR! Not logged in to
- 但我仍然可以下载包。
我的.npmrc
文件中没有身份验证令牌。它怎么还在工作?我该怎么做才能回到未经授权的状态?
curl - Github Package Registry 如何删除一个版本
我已在此处阅读有关如何删除版本的说明:https ://help.github.com/en/github/managing-packages-with-github-packages/deleting-a-package
当我尝试使用 curl 时,它只是给了我这个错误:
这是我的卷曲:
我错过了什么吗?我怎样才能正确地验证自己?
github - 作为组织的一部分为 monorepo 发布 Github 包
我在 Github Enterprise 上有一个 Lerna monorepo,它目前有两个 npm 包,我正试图将它们发布到同一个 repo 下的 Github 包注册表。
作为参考,它们是:
- github.com/mycompany/package-a
- github.com/mycompany/package-b
所以现在我的 2 个 package.json 文件如下所示(为格式化目的而修剪):
因此,您会注意到它们都具有与推荐的存储库相同的 URL。
第一个问题:一个是我的公司已经有repos调用package-a
和package-b
. 似乎您不能与 monorepo 中的包和 monorepo 之外的包发生命名冲突。¹
第二个也是更重要的问题: 这似乎根本不适合我。我在他们各自的package.json
文件中重命名了包以避免命名冲突package-a-mono
,package-b-mono
我真的不想这样做,但我只是想让它工作。尝试在存储库本身lerna publish
或npm publish
内部运行时得到 404。就像它实际上并没有尝试读取该repository.url
字段,因为它告诉您进行修改。
^ 这被证明是暂时的,或者实际上从来都不是问题,只是因为命名冲突。
npm 发布输出:
lerna 发布输出:
有没有人遇到这个并找到解决方案?
¹更糟糕的是,由于某种原因,我第一次运行它时,它实际上确实将一个包发布到了package-a
. 但从那时起,我收到错误lerna ERR! E422 Package "package-a" is already associated with another repository.
Nothing changed,我无法将另一个版本发布到同一个repo。