如何从Github Package Registry下载特定发布版本的JAR



目标

我想要两个存储库:

  • 存储库A:向Github Registry 发布JAR

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


也就是说,我正在搜索一个API,它看起来像:

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

问题

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

问题

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

ToGithub Package Registry下载JAR使用以下URL:

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

例如,对于此软件包,如果只发布了pom文件:

https://maven.pkg.github.com/abrensch/brouter/org/btools/brouter/1.6.1/brouter-1.6.1.pom

@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令牌的环境变量,您可能已经猜到了。

最新更新