【问题标题】:Is there a way to download an artifact from the latest release on GitHub?有没有办法从 GitHub 上的最新版本下载工件?
【发布时间】:2016-11-11 23:48:05
【问题描述】:

在 GitHub 上,我可以通过 https://github.com/markvincze/golang-build-test/releases/tag/hello-v6 之类的链接访问具有特定版本的版本。

我可以使用 https://github.com/markvincze/golang-build-test/releases/download/hello-v6/filename 从那个版本下载它的工件。

我也可以通过https://github.com/markvincze/golang-build-test/releases/latest访问最新版本

问题:有没有办法直接从最新版本下载工件?
我尝试了https://github.com/markvincze/golang-build-test/releases/download/latest/filename,但它不起作用,而且我在文档中找不到任何内容。

【问题讨论】:

    标签: github deployment continuous-integration


    【解决方案1】:

    您可以使用例如HTTP HEAD request method 来确定最新标签:

    HEAD https://github.com/markvincze/golang-build-test/releases/latest
    

    在撰写本文时,返回的响应包括以下两个标头:

    Status: 302 Found
    Location: https://github.com/markvincze/golang-build-test/releases/tag/hello-v6
    

    使用它,您现在应该能够使用适当的标签提交第二个请求。

    Wikipedia's writeup of HTTP 302 for details

    另一种选择是使用 GitHub API 提供的 Get the latest release 端点,然后类似地跟进第二个请求。在这种情况下,响应中的 tag_name 键会有所帮助。

    【讨论】:

    • 感谢您的信息! (我希望能够使用直接链接,因为我必须从 bash 和 PowerShell 脚本中执行此操作,并且我想避免发送 HTTP 请求并提取标签名称......但没有什么可以是完美的,对吧?:))
    • 我写了一篇关于如何使用 shell 脚本和 PowerShell 确定最新工件的 URL 的博文:blog.markvincze.com/…
    猜你喜欢
    • 2014-02-21
    • 2014-08-07
    • 2012-11-07
    • 2014-07-27
    • 2016-02-03
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2020-06-27
    相关资源
    最近更新 更多