如何通过Artifactory VCS API下载GitHub Releases指定二进制文件
你当前使用的VCS Remote仓库的设计定位是拉取Git仓库的源码压缩包,本身不支持直接抓取GitHub Release上传的二进制附件,可通过以下两种方案实现需求:
实现方案
方案一:新增GitHub Release专属Generic远程仓库(推荐)
该方案可适配所有GitHub仓库的Release二进制拉取需求,配置一次即可全局使用:
- 登录Artifactory管理后台,进入「Administration」-「Repositories」-「Repositories」,点击「Add Repositories」选择「Remote Repository」,包类型选择
Generic - 基础配置页的
URL字段填写https://github.com/,无需额外添加后缀路径 - 切换到「Advanced」标签页,找到「URL Suffix」配置项,填写
releases/download - 完成其他基础权限配置后保存仓库
- 拉取指定二进制的路径规则为:
<你的Artifactory服务地址>/artifactory/<刚创建的远程仓库名>/<GitHub组织名>/<仓库名>/<Release标签>/<二进制文件名> - 针对你提到的terragrunt示例,实际请求路径为:
<Artifactory域名>/artifactory/github-release-remote/gruntwork-io/terragrunt/v0.35.13/terragrunt_linux_amd64 - 该路径同时支持浏览器直接访问、JFrog API调用,Artifactory会自动代理拉取对应文件并缓存到本地。
方案二:利用现有通用远程仓库直接拉取(无需新增仓库)
如果已有对接公网的Generic类型远程仓库,可直接通过路径拼接的方式拉取:
- 路径规则为:
<你的Artifactory服务地址>/artifactory/<现有通用公网远程仓库名>/https://github.com/<GitHub组织名>/<仓库名>/releases/download/<Release标签>/<二进制文件名> - 部分旧版本Artifactory需要先在远程仓库的「Advanced」配置页开启「Allow Any URL」权限才可使用该方式。
额外配置说明
- 如果需要拉取私有仓库的Release二进制,在远程仓库的认证配置项选择
Basic认证,用户名填GitHub账号,密码填对应仓库访问权限的Personal Access Token即可。 - 可在远程仓库配置中开启长期缓存规则,避免重复拉取相同文件消耗公网带宽,同时提升后续拉取速度。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

