如何使用 Gradle 中的 Github 包的令牌身份验证?

问题描述 投票:0回答:1

https://docs.github.com/en/packages/guides/configuring-gradle-for-use-with-github-packages上的示例配置似乎不起作用,因为 GitHub 包看起来不起作用实际上并不接受基本身份验证。我从 https://github.com/settings/tokens 检索到了来自 GitHub 的令牌,但我没有找到在 Gradle 中使用它进行 Bearer 身份验证的方法。

我问这个问题是为了回答它。

maven github gradle authorization token
1个回答
6
投票
在您的

gradle.build.kts

 的存储库部分中,包含以下内容:

repositories { ... maven("https://maven.pkg.github.com/<OWNER>/<GIT_REPO>") { credentials(HttpHeaderCredentials::class) { name = "Authorization" value = "Bearer ${project.findProperty("gpr.token") as String}" } authentication { create<HttpHeaderAuthentication>("header") } } }

<OWNER>

 替换为拥有存储库的用户或组织的名称,将 
<GIT_REPO>
 替换为生成包的 git 存储库的名称。然后,您将在 
https://github.com/settings/tokens 上生成的令牌添加到全局 gradle.properties
 ,通常位于 
$GRADLE_USER_HOME/gradle.properties
,通常默认为 
~/.gradle/gradle.properties

(也可以将凭据放入

gradle.properties

 与您的 
build.gradle.kts
 位于同一目录中,
但这是不安全,不推荐!)。

它应该看起来像:

gpr.token=<Token, without quotes>
该文件可能已经存在并具有其他设置,您无需删除它们。 

请勿提交此文件

如果这仍然不起作用,请验证您生成的令牌是否具有

read:packages

 权限。如果没有,您需要生成一个新令牌。

希望这可以为您节省 4 个小时的时间,让我弄清楚发生了什么。

© www.soinside.com 2019 - 2024. All rights reserved.