2011-07-14 51 views
57

有没有什么办法可以获得从github克隆或下载git仓库的次数? 我只是好奇,因为我发现其他统计信息,如提交时间行代码凸轮可以使用:http://gitstats.sourceforge.net/但我没有找到如何检查克隆/下载计数。有没有办法获得git仓库的下载/克隆统计信息?

+0

想知道存储库被分叉了多少次吗?因为这绝对是可行的。 – 2014-05-09 19:29:21

+1

您现在可以看到**数量的克隆**:请参阅[如何获取GitHub克隆统计信息?](http://stackoverflow.com/a/25270050/6309) – VonC

+1

可能的重复[如何获取GitHub克隆统计信息?](http://stackoverflow.com/questions/10056638/how-to-get-github-clone-stats) – sumid

回答

25

克隆是一种只读操作,原始存储库未被修改。您无法为统计数据提取简单不被跟踪的数据。

+21

那么,它将*可能*在git之外追踪它,通过登录运输机制。例如,我非常确定gitolite日志会提供足够的信息来推断克隆(尽管我认为它们可能无法区别于以不同方式获取所有参考文献?在这里没有任何关注)。但是,当然,即使存在,你也无法从github获得这种东西。 – Cascabel

+0

不要介意克隆是可以自己克隆的完整存储库。查看某个存储库的某个特定实例被克隆了多少次对于计算出有多少人已普遍克隆它无用。 – meagar

+27

是的,它肯定不会是一个可靠的统计数据,但是例如,我可以看到一个开源项目很好奇,至少有一个数量级的估计,可以从开发主体中构建多少人而不是稳定的快照。 – Cascabel

4

关于下载统计信息,您可以获取有关您的Releases via the API的信息。

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

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

例子:Example

1

实际克隆计数是通过Clone Graphs功能,我已经能够凑来获得个体数可供选择:

#!/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' 
16

其超强现在很容易!

转到“REPO - >分析 - >交通”

enter image description here

+1

混帐!= github上的人,请... –

+0

只是一个说明,这似乎需要你拥有“所有权”或commiter级访问 – bbarker

1

我只是发现有一个更简单的方法使用GitHub的API一个命令来得到它。

curl -u [username]:[password] https://api.github.com/repos/[owner]/[repo]/traffic/clones 

这里:

username = your github id 
password = your github password, optional. If not put in command, a password request would pop out. 
owner  = the owner of the repo, might be another name for a organized repo 
repo  = the repo name 

有乐趣。

+0

这才会出现,如果你有推送权限工作的一些水平。 – William