问题标签 [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 或 yarn 安装 Github 包时出现 401 未授权
当我尝试npm
从 GitHub 操作安装我的模块时,我收到以下错误:
在您发表评论之前,我已经使用范围和访问令牌正确配置了 .npmrc,并且在本地安装私有包时一切正常。
这是我的 GitHub 工作流程操作:
这是我的 .npmrc
这是一个私人仓库,authTokens 当前被硬编码在 .npmrc 文件中。
然而,在尝试为此寻找解决方案时,我确实遇到了 Github 工作人员的这条随机评论:https ://github.community/t/netlify-getting-401-from-github-package-registry-with-auth -令牌/16415/3
这有点含糊,但听起来它不接受 .npmrc 文件中的硬编码 authToken 。
所以我尝试的第一件事是使用我们的环境变量,而不是像这样:
env 变量在我们的 Github 存储库机密中是正确的,并由工作流提供。
但是,这仍然导致相同的 401 Unauthorized 错误。
通过查看其他解决方案,我尝试在install
步骤之前在 Github 操作中手动生成 .npmrc,如下所示:
在我添加的日志记录步骤中,_authToken(仅适用于 Github)仍然显示为***
,并且我仍然收到 401 Unauthorized 错误。
在这一点上,我想确认 .npmrc 甚至被使用,所以我删除了我们用于的第二个私有注册表marmelab.com
,果然,我收到一个错误,说它不再能够安装他们的ra-realtime
包。这证明 .npmrc 文件确实被我的 Github 操作读取和使用,但它不接受我的 Github 个人访问令牌。
我也尝试生成一个新令牌。它可以完全访问下面的所有内容repo:
以及应该需要的内容write:packages
。read:packages
在 Github 操作中仍然 401 Unauthorized,并且在本地仍然可以正常工作。
最后,我尝试使用yarn
而不是npm
. 不出所料,这也没有解决它。
我已经看到并尝试了以下解决方案,但没有成功:
- 在 Github Action 中通过 Yarn 从 Github 包注册表下载私有模块?发布工作,但安装遇到“401 Unauthorized”
- https://github.com/FerLuisxd/create-npmrc
- https://blog.bitsrc.io/install-npm-private-packages-in-ci-cd-with-github-actions-746db95017cc
一件事我没有尝试过,因为我没有看到关于如何或这是一个好主意的建议,但我还没有npm login
在 Github 内进行操作。由于没有其他人这样做,并且以某种方式使其工作,我认为这没有必要。
android - 发布 GitHub 包返回 422 错误
我在一个 Android 项目中使用 GitHub 包已经有一段时间了,没有任何问题。现在,当我尝试发布新包时,出现错误:
无法 PUT 从服务器接收到状态代码 422:无法处理的实体
为了确保我没有更改任何内容,我回到了几天前成功发布包的 git-tag,我只更改了版本以生成不同的包。我犯了同样的错误。
我添加了日志,可以看到令牌已正确读取,所有值(GROUP、VERSION 等)似乎都正确,并且我尝试发布的文件位于正确的文件夹中。我还尝试创建和使用新令牌,以防旧令牌出现问题,但没有帮助。
如果我发布了太多文件,GitHub 会拒绝发布该错误吗?我没有找到任何有关您在这种情况下遇到的错误的文档。
编辑
我还尝试创建一个新项目并发布到该项目,以防最初的项目出现问题,但它也不起作用。
我尝试使用 CURL 直接 PUT 一个文件,这意味着令牌是正确的,并且问题不在于已发布包的总大小的限制:
当然,这不是解决方案,因为我需要使用 pom 等发布 maven repo。
结束编辑
在这里,我的配置已经工作了很长时间,并且只是遵循文档+我添加的用于调查问题的日志。
在build.gradle
:
在publish-artifacts.gradle
:
在gradle.properties
文件中:
VARIANT_SUFFIX
从环境变量设置。
archivesBaseName
设置在模块的build.gradle
npm - 无法将包推送到 Github
我正在尝试为 NPM 项目设置 Github 包,但遇到了一些问题。
我在特定组织下有一个仓库:
my-orgname/my-repo-name
这个仓库是私有的
my-orgname/my-repo-name
repo 中的代码包含一个 NPM 模块。
项目中的 package.json
.npmrc 在项目文件夹中
registry=https://npm.pkg.github.com/my-orgname
~/.npmrc 文件
从项目文件夹中..
npm publish
结果是
github-actions - 从 GH 操作中,您如何从同一组织中的另一个私有仓库中提取 NPM 模块?
从 GH 操作中,您如何从同一组织中的另一个私有仓库中提取 NPM 模块?
- 我知道 GITHUB_TOKEN 仅限于运行该操作的存储库。
- 我读过使用 PAT 代替
好的,但你实际上是怎么做的?
步骤是什么。它去哪儿了?
到目前为止我所做的事情..
失败
失败
失败
失败
我认为这是一个非常常见的用例,我很惊讶发现它是如此神秘。
maven - 如何从 Maven 项目中引用公共 GitHub 包
我有一个 GitHub 存储库,其中包含一个发布到其自己的 GitHub 包 maven 存储库的库。而且我还有另一个项目,我想将此库作为依赖项引用。
当我将以下配置添加到项目的 POM 文件中时,它不起作用。
它需要我进行身份验证。我知道这是非常合乎逻辑的,因为它基本上不是源代码库,而是底层的 Maven 代码库。但是有没有办法让 maven 正常访问这个依赖项?我的图书馆在公共回购中。
PS 请不要建议使用 Jitpack,因为我想在没有任何额外资源的情况下获得干净的解决方案。
scala - 如何将 GitHub Packages 解析器添加到 Ammonite 脚本?
有谁知道如何将 GitHub Packages 解析器添加到 Ammonite 脚本?
我很习惯将 GitHub Packages 与 sbt 一起使用,但我们使用sbt-github-packages
插件,这使得将 GitHub Packages 解析器添加到 build.sbt 文件变得非常容易。例如,在 build.sbt 中,我只包括:
由于我不能将sbt-github-packages
插件与 Ammonite 一起使用,因此我确信 Ammonite 的答案要复杂得多。
使用该sbt-github-packages
插件进行身份验证时,我将我的 GitHub 令牌放在名为 GITHUB_TOKEN 的环境变量中,并且 Ammonite 解决方案还必须执行正确的身份验证。
maven - 如何在 Github Actions 工作流中从 Github 包访问 Maven 依赖项?
我的构建通过直接在pom.xml
<repository>
元素上使用 User + PAT(个人访问令牌)在本地工作:
从github下载:https://[USER]:[PAT]@maven.pkg.github.com/myaccount/myrepo/org/springframework/flex/spring-flex-core/1.6.1.BUILD-SNAPSHOT/maven- metadata.xml(796 B,592 B/s)
我没有settings.xml
配置。
但是,它在 Github Actions 工作流程上有所突破:
警告:无法将元数据 org.springframework.flex:spring-flex-core:1.6.1.BUILD-SNAPSHOT/maven-metadata.xml 从/到 github (***maven.pkg.github.com/myaccount/myrepo ): https://maven.pkg.github.com/myaccount/myrepo/org/springframework/flex/spring-flex-core/1.6.1.BUILD-SNAPSHOT/maven-metadata.xml 401 未经授权的身份验证失败
无法在 org.springframework.flex:spring-flex-core:jar:1.6.1.BUILD-SNAPSHOT 收集依赖项:无法读取 org.springframework.flex:spring-flex-core:jar:1.6.1 的工件描述符.BUILD-SNAPSHOT
我的工作流程是这样的:
为什么它会在 Github 工作流程上中断?
.net - 如何使用 Visual Studio 2019 设置私有 Nuget 包注册表?
我正在尝试通过 NuGet 包管理器在 Visual Studio 2019 中提供一个 .NET Framework v4.5.2 包,该包来自 Github 的私有 NuGet 包注册表系统。
我正在使用的重要东西:
- .NET 框架 4.5.2
- Github 操作
- Github
- Github 包注册表 (GPR)
- Visual Studio 2019/NuGet 包管理器
我的目标是什么?
整个生命周期看起来有点像这样:
- 我的项目的 repo 有一个 CI 工作(Github 品牌) to
msbuild
& publishnupkg
。它将所有内容打包并将其部署到https://nuget.pkg.github.com/ <my-private-org>。 - 在 Visual Studio 2019 中,在给定项目破解打开的情况下,用户应该能够引用https://nuget.pkg.github.com/ <my-private-org> 作为自定义 NuGet 提要,并声明“我的项目”作为依赖。
什么有效,什么无效?
GitHub成功发布了我的包——我可以在访问https://github.com/my-private-organization?tab=packages时看到它。
但是,我无法让 Visual Studio 2019 支持我的私有 NuGet 注册表。当我尝试访问它时,我收到错误:
当我尝试GET https://nuget.pkg.github.com/<my-private-organization>/query?q=&skip=0&take=26&prerelease=true&supportedFramework=.NETFramework,Version=v4.7&semVerLevel=2.0.0'
在浏览器中运行相同的查询(
我肯定有一个GITHUB_TOKEN
with read:package
perms——在我的 CI 工作中,我首先用它来生成包。
我很怀疑...
我需要将我的read:package
凭证GITHUB_TOKEN
作为额外的 auth-credentials 传递,但我不知道是否/如何在nuget.config
. 这导致我们...
我的配置是什么?
我读到我需要%APPDATA%/NuGet/nuget.config
使用一些额外的凭据信息来参数化我,这些信息是从这里获得的:https ://docs.microsoft.com/en-us/nuget/reference/nuget-config-file#packagesourcecredentials 。我可以确认我正在更新正确的nuget.config
文件——我已经能够在 Visual Studio 中使用我正在触摸的文件更改包流名称。现在看起来有点像:
中指定的用户名和密码packageSourceCredentials
与我在浏览器中进行的手动GET
查询中使用的相同(在 401 中失败)。
欢迎所有想法,即使是“没有人做A”。
azure-web-app-service - 如何将 docker 镜像从 Github 包注册表部署到 Azure Web Apps
我有关于 Docker Image 的 Github 包注册表。我想将它部署到 Azure Web Apps。我尝试这样的设置,
- 服务器网址:https ://docker.pkg.github.com
- 完整图像名称和标签:berviantoleo/my-telegram-bot/my-telegram-bot:latest
我没有填写用户名和密码,因为它是公共 docker 镜像。我也已经尝试带上用户名和密码,但没有运气,仍然无法拉动。
我从日志中看到,它有这样的日志:
这很奇怪,因为我已经更改了服务器 URL,是服务器 URL 只支持 Docker Hub 吗?我需要这方面的帮助。我已经从 Dockerhub 尝试过了,是的,它可以部署。但现在,我想从 Github Packages Registry 尝试一下。
更新:
我弄错了,全名应该是:
docker.pkg.github.com/berviantoleo/my-telegram-bot/my-telegram-bot:latest
需要包括docker.pkg.github.com
当更改为私有仓库并提供用户名和密码时,它可以拉取镜像。
公共存储库时,它仍然需要用户名和密码,可能是因为我对包有误解。我认为
docker.pkg.github.com
仍然需要进行身份验证。我得到这个日志:我仍然需要找到不需要用户名和密码的解决方案。
github-actions - 如何从 Github 包注册表下载特定发行版本的 JAR
目标
我想要两个存储库:
存储库 A:将 JAR 发布到 Github Registry
存储库 B:从 A 下载 JAR 并发布包含该 JAR 的 Docker 映像。
即我正在寻找一个看起来像这样的 API:
问题
是否有 Github 操作或 API 允许我从 Github 包注册表下载特定版本的工件?
问题
我知道工件有一个Github API,但我看不到如何请求特定版本的工件 URL 。