【问题标题】:Programmatically add files to a GitHub download page以编程方式将文件添加到 GitHub 下载页面
【发布时间】:2010-11-28 16:48:46
【问题描述】:

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

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

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

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

【问题讨论】:

  • FWIW,我认为在版本控制下将 PDF 文档添加到存储库中是非常合理的。这对我来说很有意义,不应该增加大小,因为它只会是不同的,而且每次更改的格式可能没有那么不同。
  • 二进制数据的差异不是很好吗?老实说,我还没有真正检查过。
  • 它可能没有那么好区分,但这取决于它的存储方式。检查它不会有什么坏处,无论如何,我不会真的担心。你的文件将是什么,100kb?也许300?取决于您的存储限制。就个人而言,我认为它是软件版本的一部分。在家里,我将项目的所有相关媒体都保存在源代码控制中。我的意思是,它是派生的,如果你可以将它作为后期构建,那就更好(也许),但我认为这是可以接受的,除非存在极端空间问题。
  • 我希望有一个用于上传文件的 API 调用(因为您可以将任意文件上传到项目的下载页面),但似乎没有。 :/ 但是,如果他们每个人都添加一个,那么这可能是一个好方法。

标签: github


【解决方案1】:

Github API v3 支持这个feature

GitHub 还提供了一个基于 java APImaven plugin,它是 Eclipse Mylyn connector for GitHub 的一部分。

有一个叫github_api的红宝石。

另一个答案谈到 net-github-upload 可用于 perlruby

【讨论】:

  • 需要注意的是 GitHub 正在停止这个功能。
【解决方案2】:

查看可用的 net-github-upload

对于 perl:http://github.com/typester/net-github-upload-perl 和红宝石:http://github.com/Constellation/ruby-net-github-upload

您可以编写一个小脚本来轻松上传和更新您的 PDF。遗憾的是,github家伙自己没有提供简单的方法..

加油!

【讨论】:

    【解决方案3】:

    GitHub 博客文章宣布此功能已被禁用:https://github.com/blog/1302-goodbye-uploads

    【讨论】:

      【解决方案4】:

      我认为“GitHub 下载页面”的所有者是指可以通过“下载”按钮下载的存储库——更具体地说是一个分支。

      如果您想使用 API 将文件添加到存储库,您必须熟悉此处描述的过程:https://developer.github.com/v3/git/

      这不是世界上最简单的过程,但掌握它会迫使您理解 blob、树、提交和引用等概念。

      你不能仅仅因为你在使用 Git 而“发送文件”到仓库,而且 Git 有一些你不能忽视的“内部期望”(不可能将 GitHub 视为某种您可以 ftp 的主机)。解释在 GitHub 存储库中创建文件所需的流程肯定超出了原始问题的范围,但要提供一个明确的答案:不,不可能以编程方式上传 GitHub 上的文件,但可以通过编程方式将文件推送到 GitHub"。

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

      【讨论】:

      • 存储库下载页面不再存在。现在这个问题是指将二进制文件添加到新“发布”的处理,例如https://github.com/<user>/<repo>/releases/new
      猜你喜欢
      • 2010-09-16
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多