下载最新的GitHub版本

kef*_*500 17 tags release github

我想在我的网站上有"下载最新版本"按钮,该按钮代表最新版本的链接(存储在GitHub版本中).我试图创建名为"latest"的发布标签,但是当我尝试加载新版本时(与标签创建日期混淆,标签交换等),它变得复杂了.手动更新我网站上的下载链接也是一项耗时且严格的任务.我看到唯一的方法 - 将所有下载按钮重定向到一些html,然后重定向到实际的最新版本.

请注意,我的网站托管在GitHub Pages(静态托管),所以我根本无法使用服务器端脚本来生成链接.有任何想法吗?

dod*_*dod 15

在您创建第一个版本后,Github现在在项目的发布页面上提供"最新版本"按钮.

在您给出的示例中,此按钮链接到https://github.com/reactiveui/ReactiveUI/releases/latest


Dan*_*scu 10

您不需要任何脚本来生成最新版本的下载链接.只需使用以下格式:

https://github.com/:owner/:repo/zipball/:branch
Run Code Online (Sandbox Code Playgroud)

例子:

https://github.com/webix-hub/tracker/zipball/master
https://github.com/iDoRecall/selection-menu/zipball/gh-pages
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您想获得最新版本下载的链接,包括其版本号,您可以从获取最新版本API获取该链接:

GET /repos/:owner/:repo/releases/latest
Run Code Online (Sandbox Code Playgroud)

例:

$.get('https://api.github.com/repos/idorecall/selection-menu/releases/latest', function (data) {
  $('#result').attr('href', data.zipball_url);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="result">Download latest release (.ZIP)</a>
Run Code Online (Sandbox Code Playgroud)

  • 如果您需要 .tar.gz 文件,则可以将 url 中的“zipball”替换为“tarball”。 (2认同)
  • https://api.github.com/repos/jquery/jquery/releases/latest 返回 404。这将返回空字符串:https://api.github.com/repos/webix-hub/tracker/releases 而这两个项目有版本。为什么 API 行为不一致?有这方面的文档吗? (2认同)