1

目标

我想要两个存储库:

  • 存储库 A:将 JAR 发布到 Github Registry

  • 存储库 B:从 A 下载 JAR 并发布包含该 JAR 的 Docker 映像。


即我正在寻找一个看起来像这样的 API:

wget https://github.com/repoOwner/repoName/packages/1.2.3/my.jar

问题

是否有 Github 操作或 API 允许我从 Github 包注册表下载特定版本的工件?

问题

我知道工件有一个Github API,但我看不到如何请求特定版本的工件 URL 。

4

2 回答 2

3

要从Github 包注册表下载 JAR,请使用以下 URL:

https://maven.pkg.github.com/OWNER/REPO/PACKAGE/VERSION/ARTIFACT.jar
  • 使用您的个人开发者令牌和帐户名进行身份验证
    • 对于公共存储库,令牌不需要特殊权限
    • 对于私有存储库,令牌只需要package:read权限
  • 替换OWNER为仓库所有者的 Github 账户名
  • 替换REPO为存储库名称
  • 替换PACKAGE为您发布的组 ID
  • 替换VERSION为您发布的工件版本
  • 替换ARTIFACT为您发布的工件 ID

例如对于这个包,只pom发布了一个文件:

https://maven.pkg.github.com/abrensch/brouter/org/btools/brouter/1.6.1/brouter-1.6.1.pom
于 2020-11-30T10:29:30.190 回答
0

@hb0 答案很棒,对我帮助很大。

我只会添加我的经验,也许它可以帮助别人。

我试图用这个命令下载 jar 文件:

curl -O --header "Authorization: Bearer $MYSECRETTOKEN" https://maven.pkg.github.com/myorg/myrepo/com/org/mypackage/1.0.0/mypackage-1.0.0.jar

但它又回来了:

Moved Permanently

然后我不得不将命令更改为:

curl -O -L https://_:$MYSECRETTOKEN@maven.pkg.github.com/myorg/myrepo/com/org/mypackage/1.0.0/mypackage-1.0.0.jar

$MYSECRETTOKEN正如您可能猜到的那样,带有 github 令牌的环境变量在哪里。

于 2021-12-13T12:53:14.907 回答