Github:我能看到回购的下载次数吗?

在Github中,有没有办法可以看到回购的下载次数?

2017年更新

交通屏幕不再提到回购克隆的数量。
相反,你必须依赖像GitItBack (在http://www.netguru.co/gititback ) 这样的第三方服务,但即使这样也不包括克隆数量。

您仍然可以使用GitHub API 获取您的发行版的下载计数 (这不完全是要求的)
请参阅“ 获取单个版本 ”,即download_count字段。

另见http://www.somsubhra.com/github-release-stats , 如下所述 。
例如,这里是最新的Windows版本git的编号

Git 2.14.2发布


2014年8月更新

GitHub还在其stream量图中提出了回购的克隆数量:
请参阅“ 克隆图 ”

http://i.stack.imgur.com/uycEZ.png


2013年10月更新

正如下面的andyberry88所提到的,正如我在去年7月所详细描述的那样,GitHub现在提供 了一个download_count字段的 发布版 (请参阅其API )。

Michele Milidoni在他的(upvoted)答案中确实在他的python脚本中使用了这个字段。
( 非常小的提取物 )

 c.setopt(c.URL, 'https://api.github.com/repos/' + full_name + '/releases') for p in myobj: if "assets" in p: for asset in p['assets']: print (asset['name'] + ": " + str(asset['download_count']) + " downloads") 

原文答复(2010年12月)

我不确定你能看到这些信息(如果它被logging的话),因为我没有在GitHub Repository API中看到它:

 $ curl http://github.com/api/v2/yaml/repos/show/schacon/grit --- repository: :name: grit :owner: schacon :source: mojombo/grit # The original repo at top of the pyramid :parent: defunkt/grit # This repo's direct parent :description: Grit is a Ruby library for extracting information from a git repository in an object oriented manner - this fork tries to intergrate as much pure-ruby functionality as possible :forks: 4 :watchers: 67 :private: false :url: http://github.com/schacon/grit :fork: true :homepage: http://grit.rubyforge.org/ :has_wiki: true :has_issues: false :has_downloads: true 

你只能看到它是否有下载或没有。

我用JavaScript编写了一个小型Web应用程序 ,用于显示Github上任何项目的可用版本中所有资产的下载次数。 你可以在这里试用这个应用程序: http : //somsubhra.github.io/github-release-stats/

GitHub不赞成下载支持,现在支持'Releases' – https://github.com/blog/1547-release-your-software 。 要创build一个版本,可以使用GitHub UI或创build一个带注释的标签(http:// git-scm.com/book/ch2-6.html),并在GitHub中添加发行说明。 然后,您可以将二进制文件或“资产”上传到每个版本。

一旦你有一些版本,GitHub API支持获取关于它们的信息和他们的资产。

 curl -i \ https://api.github.com/repos/:owner/:repo/releases \ -H "Accept: application/vnd.github.manifold-preview+json" 

查找“download_count”条目。 更多信息在http://developer.github.com/v3/repos/releases/ 。 这部分API仍处于预览期间的ATM中,因此可能会改变。

2013年11月更新:

GitHub的发布API现在不在预览期间,因此不再需要“Accept”标头了 – http://developer.github.com/changes/2013-11-04-releases-api-is-official/

尽pipe如此,继续添加“Accept”标头也不会有什么坏处。

如前所述,GitHub API返回二进制文件版本的下载计数。 我开发了一个小脚本 ,通过命令行轻松获得下载量。

以前有两种方法在Github下载代码:克隆或下载为zip .git回购,或上传一个文件(例如二进制文件)供以后下载。

下载回购(克隆或下载为zip)时,Github不会计算技术限制的下载次数。 克隆存储库是一个只读操作。 没有authentication要求。 这个操作可以通过很多协议来完成,包括HTTPS,和网页用于在浏览器中显示回购的相同的协议。 数数是非常困难的。

见: http : //git-scm.com/book/en/Git-on-the-Server-The-Protocols

最近,Github不赞成下载function。 这是因为他们知道Github专注于构build软件,而不是分发二进制文件。

请参阅: https : //github.com/blog/1302-goodbye-uploads

截至2014年10月,有访客计数可用:

在这里输入图像说明

Github API不再提供所需的信息。 看看Stan Towianski的回答中提到的发布页面 。 正如我们在回答中所讨论的那样,Github API只报告他为每个版本提供的三个文件中的一个的下载。

我已经检查了解决scheme,提供了对这个问题的其他答案。 Vonc的回答是Michele Milidoni解决scheme的重要组成部分。 我安装了他的gdc脚本,结果如​​下

 # ./gdc stant mdcsvimporter.mxt: 37 downloads mdcsvimporter.mxt: 80 downloads How-to-use-mdcsvimporter-beta-16.zip: 12 downloads 

您可以清楚地看到,gdc不会报告tar.gz和zip文件的下载计数。

如果你想检查而不安装任何东西,请尝试在Somsubhra安装解决scheme的网页 ,在他的答案中提到。 填入“stant”作为Github用户名和“mdcsvimporter2015”作为Repository名称,您将看到如下内容:

 Download Info: mdcsvimporter.mxt(0.20MB) - Downloaded 37 times. Last updated on 2015-03-26 

唉,再次只有一个没有下载tar.gz和zip文件的报告。 我仔细检查了Github的API返回的信息,但没有提供任何地方。 API返回的download_count现在还远远没有完成。

很晚,但这是你想要的答案:

 https://api.github.com/repos/ [git username] / [git project] /releases/ 

接下来,在数据中find您正在查找的项目的ID。 它应该靠近顶部,在url旁边。 然后,导航到

 https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets 

名为download_count的字段是您的答案。

基于VonC和Michele Milidoni的回答,我创build了这个小书签 ,它显示了github托pipe发布的二进制文件的下载统计信息。

注意:由于与内容安全策略实现相关的浏览器问题 ,bookmarklets可能暂时违反一些CSP指令,并且在启用CSP的情况下在github上运行时可能无法正常运行。

尽pipe非常灰心,但是可以禁用Firefox中的CSP作为临时解决方法。 打开about:config并将security.csp.enable设置为false。

我结束了写一个刮板脚本来find我的克隆计数:

 #!/bin/sh # # This script requires: # apt-get install html-xml-utils # apt-get install jq # USERNAME=dougluce PASSWORD="PASSWORD GOES HERE, BE CAREFUL!" REPO="dougluce/node-autovivify" TOKEN=`curl https://github.com/login -s -c /tmp/cookies.txt | \ hxnormalize | \ hxselect 'input[name=authenticity_token]' 2>/dev/null | \ perl -lne 'print $1 if /value=\"(\S+)\"/'` curl -X POST https://github.com/session \ -s -b /tmp/cookies.txt -c /tmp/cookies2.txt \ --data-urlencode commit="Sign in" \ --data-urlencode authenticity_token="$TOKEN" \ --data-urlencode login="$USERNAME" \ --data-urlencode password="$PASSWORD" > /dev/null curl "https://github.com/$REPO/graphs/clone-activity-data" \ -s -b /tmp/cookies2.txt \ -H "x-requested-with: XMLHttpRequest" | jq '.summary' 

这将从Github的克隆图使用的同一端点获取数据,并从中抽出总数。 数据还包括每日计数,用justreplace.summary . 看那些漂亮的印刷品。

如前所述,您可以通过API获取有关您的发行版的信息。

对于那些使用WordPress,我开发了这个插件: GitHub发布下载 。 它允许您获取GitHub存储库版本的下载计数,链接和更多信息。

为了解决原始问题,短代码[grd_count user="User" repo="MyRepo"]将返回存储库的下载数量。 这个数字对应于一个GitHub仓库所有版本下载计数值的总和。

例: 例

为了使这个更清楚:
对于这个github项目:stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
与发布在
https://github.com/stant/mdcsvimporter2015/releases

去http或https:(注意添加了“api。”和“/ repos”)
https://api.github.com/repos/stant/mdcsvimporter2015/releases

你会得到这个JSON输出,你可以search“download_count”:

  "download_count": 2, "created_at": "2015-02-24T18:20:06Z", "updated_at": "2015-02-24T18:20:07Z", "browser_download_url": "https://github.com/stant/mdcsvimporter2015/releases/download/v18/mdcsvimporter-beta-18.zip" 

或者在命令行上执行:
wget – 无检查证书https://api.github.com/repos/stant/mdcsvimporter2015/releases

对于那些需要Python解决scheme的人,我写了一个简单的脚本。


Python脚本:

  • GitHub下载统计

用法:

ghstats.py [user] [repo] [tag] [options]

  • 参数
  • 例子

支持:

  • 支持Python 2Python 3开箱即用。
  • 可以同时用作独立模块和Python模块。