以编程方式将文件添加到GitHub下载页面

以编程方式将文件添加到GitHub下载页面,github,Github,[[请注意,自从第一次提出这个问题以来,Github发生了很大的变化;将“下载页面”改为“新版本”。]] 我将生成PDF文档作为我项目的一部分,我希望它们与我的Git存储库保持同步(人们并不总是能够构建自己的文档,因为他们经常使用专有字体) 但是,将PDF添加到存储库并不是真正的“正确”,因为它是一个派生文件;此外,这样做会显著增加提交的大小和整个存储库的大小 是否可以通过编程方式将文件发送到GitHub下载页面?(我知道标记的提交会自动添加到那里,带有git push--tags,但我不知道这

[[请注意,自从第一次提出这个问题以来,Github发生了很大的变化;将“下载页面”改为“新版本”。]]

我将生成PDF文档作为我项目的一部分,我希望它们与我的Git存储库保持同步(人们并不总是能够构建自己的文档,因为他们经常使用专有字体)

但是,将PDF添加到存储库并不是真正的“正确”,因为它是一个派生文件;此外,这样做会显著增加提交的大小和整个存储库的大小


是否可以通过编程方式将文件发送到GitHub下载页面?(我知道标记的提交会自动添加到那里,带有
git push--tags
,但我不知道这是在哪里记录的。我想我可以通过添加一个只包含PDF本身的单独分支来做一些奇特的事情——就像GitHub用户页面所做的那样——但我对以这种方式使用git有点生疏。)

查看可用的net github upload

对于perl: 和ruby:

有了它,你可以编写一个小脚本来轻松上传和更新你的PDF。让人难过的是,github的人自己并没有提供简单的方法


加油

Github API v3支持这一点

GitHub还提供了一个基于的,它是的一部分

有一颗红宝石叫做


另一个答案是关于可供和使用的net github上载。

github博客文章宣布此功能已被禁用:

我认为,通过“github下载页面”,所有者是指可通过“下载”按钮下载的回购协议(更具体地说是分支机构)

如果要使用API将文件添加到回购协议中,则必须熟悉此处描述的流程:

这不是世界上最简单的过程,但掌握它将迫使您理解blob、trees、commit和reference等概念

你不能只是“发送一个文件”给回购协议,因为你正在使用Git,Git有一些你不能忽视的“内部期望”(不可能把GitHub想象成某种可以ftp的主机)。解释在GitHub repo中创建文件所需的流程肯定超出了原始问题的范围,但要提供一个明确的答案:不,可以通过编程方式在GitHub上上传文件,但是可以通过编程方式在GitHub上推送文件”


有一个名为的PHP库,可以让您自动执行该过程(免责声明:我写的).

FWIW,我认为在版本控制下将PDF文档添加到存储库中是非常合理的。这对我来说是有意义的,并且不应该增加大小,因为它只会有差异,而且每次更改的格式可能不会有太大的差异。二进制数据差异不是很好吗?老实说,我还没有真正检查过。我们可能不会有差异LL,但它取决于它是如何存储的。不必担心检查它,不管怎样,我不会担心。您的文件将是什么,100KB?也许300取决于您的存储限制是什么。个人而言,我会把它看作是软件版本的一部分。在家里,我保存了有关源代码控制的项目的所有相关媒体。可以将其作为后期构建,这更好(可能),但我认为这是可以接受的,除非存在极端的空间问题。我希望有一个用于上传文件的API调用(因为您可以将任意文件上传到项目的下载页面),但似乎没有。但是,如果他们每个人都添加一个,那么这可能是一个很好的方法。应该注意的是,GitHub正在停止此功能。存储库下载页面不再存在。现在的这个问题是指将二进制文件添加到新“版本”的处理“例如
https://github.com///releases/new