Answers:
更新2019:
/repos/:owner/:repo/traffic/clones
,以获取每天或每周的克隆总数和故障总数,但是:仅最近14天。/repos/:owner/:repo/releases/:release_id
用于获取资产的下载数量(版本附带的文件),该字段download_count
在下面提到,但如注释所述,仅适用于最新的30个版本。更新2017
你仍然可以使用GitHub的API来获取你的下载次数版本(这是不正是什么要求)
请参阅“ 得到一个版本 ”的download_count
领域。
不再显示提及回购克隆数量的流量屏幕。
相反,您必须依靠第三方服务,例如:
www.netguru.co/gititback
),但即使这样也不包括克隆数。www.somsubhra.com/github-release-stats,如下所述。
例如,这是 Windows版本最新git的编号
2014年8月更新
GitHub还在其“流量图
”中提出了要回购的克隆数量:请参见“ 克隆图 ”
2013年10月更新
如下面的andyberry88所述,正如我在去年7月所详述的那样,GitHub现在提出了发行版(请参阅其API),该发行版具有download_count
字段。
Michele Milidoni在他的(被赞成的)答案中,确实在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月)
我不确定您是否可以看到该信息(如果已记录),因为我在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
您只能看到它是否具有下载。
download_count
的是发布API 的领域,则应包括发布下载的数量(并非始终为zip,也不是克隆)
git clone
实例。请与GitHub支持联系以进行确认。
我用javascript 编写了一个小型Web应用程序,用于显示Github上任何项目的可用版本中所有资产的下载数量。您可以在此处尝试该应用程序:http : //somsubhra.github.io/github-release-stats/
GitHub已弃用下载支持,现在支持“发布” -https://github.com/blog/1547-release-your-software。要创建发行版,请使用GitHub UI或创建带注释的标签(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中,因此可能会更改。
GitHub的发布API现已超出预览期,因此不再需要'Accept'标头-http: //developer.github.com/changes/2013-11-04-releases-api-is-official/
继续添加'Accept'标头不会有任何危害。
downloads
在资产中显示字段(至少使用此技术)是不对的?
download_count
是指示下载次数的字段-例如在api.github.com/repos/twbs/bootstrap/releases中。值得注意的是,此列表中仅显示“发行版”,显示在存储库发行版页面中的标签未出现在API列表中,请参阅developer.github.com/v3/repos/releases。例如github.com/jquery/jquery/releases在releases部分下列出了几个标签,但是api.github.com/repos/jquery/jquery/releases返回了一个空列表。
count=0
)?还是仅显示克隆请求的字段?看到这个,没有download_count
: api.github.com/repos/demisjohn/pytrimsetup/releases。相应的github页面在这里:github.com/demisjohn/pyTRIMSetup/releases
bootstrap-XYZ-dist.zip
与该download_count
字段相关的资产。如果要查看有多少人正在下载发行版,则需要上载发行版zip。据我所知,无法看到有多少人通过API克隆/下载了档案。图形视图(来自上面的stackoverflow.com/a/4339085/2634854)可能会为您提供所需的信息。
以前,Github中有两种下载代码的方法:克隆或以.git存储库的形式下载,或上传文件(例如,二进制文件)供以后下载。
下载软件库(克隆或以zip下载)时,Github不会因为技术限制而将下载次数计算在内。克隆存储库是只读操作。无需身份验证。可以通过许多协议(包括HTTPS)完成此操作,HTTPS是网页在浏览器中显示存储库所使用的协议。很难计数。
请参阅:http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
最近,Github弃用了下载功能。这是因为他们知道Github专注于构建软件,而不是分发二进制文件。
很晚了,但这是您想要的答案:
https://api.github.com/repos/ [git username] / [git project] /releases
接下来,在数据中找到您要查找的项目的ID。它应该在网址附近的顶部附近。然后,导航至
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
名为download_count的字段就是您的答案。
编辑:大写与您的用户名和项目名称有关
{ "message": "Not Found", "documentation_url": "https://developer.github.com/v3" }
Github API不再提供所需的信息。看看Stan Towianski的回答中提到的发行页面。正如我们在对该答案的评论中讨论的那样,Github API仅报告每个版本他提供的三个文件中的1个文件的下载。
我已经检查了解决方案,并在此问题的其他一些答案中提供了该解决方案。Vonc的答案提出了Michele Milidoni解决方案的关键部分。我安装了他的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已安装解决方案的网页上,他的回答中提到。填写'stant'作为Github用户名,填写'mdcsvimporter2015'作为存储库名称,您将看到类似以下内容:
Download Info:
mdcsvimporter.mxt(0.20MB) - Downloaded 37 times.
Last updated on 2015-03-26
las,再次只有一个报告,没有下载tar.gz和zip文件。我已经仔细检查了Github API返回的信息,但未在任何地方提供。如今,API确实返回的download_count远未完成。
要检查下载发行文件/软件包的次数,可以访问 https://githubstats0.firebaseapp.com
它为您提供了总下载数量以及每个版本标签的总下载量的细分。
我最终写了一个刮板脚本来查找克隆数量:
#!/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的克隆图使用的同一端点获取数据,并从中吐出总数。数据还包括每天的计数,请替换.summary
为仅.
看得到漂亮的那些。
为了使这一点更加清楚:
对于这个github项目:stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
,其发行版位于
https://github.com/stant/mdcsvimporter2015/releases
去HTTP或HTTPS(注意:添加了“API”和“/回购”)
https://api.github.com/repos/stant/mdcsvimporter2015/releases
您将获得此json输出,并且可以搜索“ 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 --no-check-certificate https://api.github.com/repos/stant/mdcsvimporter2015/releases
对于使用WordPress的用户,我开发了此插件:GitHub Release Downloads。它使您可以获得GitHub存储库的下载数量,链接和更多信息。
为了解决原始问题,简码[grd_count user="User" repo="MyRepo"]
将返回存储库的下载次数。该数字对应于一个GitHub存储库的所有版本的所有下载计数值的总和。
例:
从2019年开始的答案:
我制作了一个Web应用程序,以干净的格式显示GitHub发布统计信息:https : //hanadigital.github.io/grev/
对于那些需要使用Python解决方案的人,我编写了一个简单的脚本。
ghstats.py [user] [repo] [tag] [options]
这是使用该pip install PyGithub
软件包的python解决方案
from github import Github
g = Github("youroauth key") #create token from settings page
for repo in g.get_user().get_repos():
if repo.name == "yourreponame":
releases = repo.get_releases()
for i in releases:
if i.tag_name == "yourtagname":
for j in i.get_assets():
print("{} date: {} download count: {}".format(j.name, j.updated_at, j._download_count.value))
tar.gz
和zip
文件)的统计信息。