目标
我想要两个存储库:
-
存储库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。
To从Github 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令牌的环境变量,您可能已经猜到了。