有没有一种方法可以获取 git 仓库的下载/克隆统计信息?

110

有没有办法获取从Github克隆或下载Git存储库的次数?我只是好奇,因为我发现可以使用http://gitstats.sourceforge.net/生成其他统计信息,比如提交次数和代码行数,但我没有找到如何检查克隆/下载计数。


你想知道一个代码库被 forked 的次数吗?因为这是可以做到的。 - user456814
1
现在您可以看到克隆数量:请参阅如何获取GitHub克隆统计信息? - VonC
1
可能是重复的问题:如何获取GitHub克隆统计信息? - sumid
6个回答

130

现在变得超级简单了!

前往 "REPO -> Insights -> Traffic"。

输入图像描述


2
只是一个提醒,这似乎需要您拥有某种“所有权”或提交者级别的访问权限。 - bbarker
4
楼上的KevinWorth在问题中提到了Github并标记了Github标签。也许你没有完全阅读问题或查看它的标签? - csga5000
9
妙极了 - 它展示了过去30天的统计数据。如果他们有全部时间或按年份的统计数据会更好,但这已经很不错了! - TetraDev
1
请注意,要启用此功能,存储库必须是公共的,或者您必须拥有专业账户。 - SilentCloud
很高兴拥有它,但不幸的是,它仅限于14天的历史统计数据。有一个非常好的解决方案可以克服这个限制并保留一些数据 https://github.com/jgehrcke/github-repo-stats - unacorn

33

克隆是只读操作,原始代码库不会被修改。无法获取未跟踪数据的统计信息。


25
嗯,可以在Git之外通过记录传输机制的级别来跟踪它。例如,我相当确定Gitolite日志将提供足够的信息来推断克隆(尽管我认为它们可能无法与不同方式获取所有引用区分开来?这里没有可查看的内容)。但是,当然,即使存在这种东西,您也无法从GitHub访问它。 - Cascabel
不要介意克隆是完整的存储库,它们本身也可以被克隆。看到特定存储库实例被克隆的次数对于确定全球有多少人克隆它并没有用处。 - user229044
31
没错,这肯定不会是一个可靠的统计数据,但是举个例子,我能想象一个开源项目可能会好奇得出一个数量级估计,即有多少人正在使用开发主干而不是稳定快照。 - Cascabel
1
我认为他们可以记录git克隆请求的数量;或者更好的是,记录那些实际完成下载的请求。 - Aquarius Power
即使使用 github.com 服务的 dom,至少在没有私有 token 的情况下仍然无法访问。请参见此处的详细信息:https://github.com/MShawon/github-clone-count-badge - Andry

16

我刚刚发现使用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

玩得开心。


1
"documentation_url": "https://docs.github.com/rest/reference/repos#get-repository-clones" - SuperCode

7
关于下载统计,您可以通过API获取有关GitHub Release的信息。
对于使用WordPress的用户,我开发了一个插件:GitHub Release Downloads。它允许您获取GitHub存储库发行版的下载次数、链接和更多信息。
为了回答原始问题,短代码[grd_count user="User" repo="MyRepo"]将返回存储库的下载次数。这个数字对应于所有GitHub存储库的所有发行版下载计数值的总和。
例如:Example

2
你可以使用shields.io,它提供了图标栏,显示包括Github在内的各种网站上项目的计数。它们显示下载次数,但不显示克隆次数。
这是我一个项目的示例: Markdown代码:
![GitHub All Releases](https://img.shields.io/github/downloads/lewdev/hw-gen/total)

结果:

GitHub All Releases

因为我的应用程序已经发布,所以没有人“下载”它,但人们会克隆它。所以我更想看到这方面的统计数据。


1
实际克隆计数可通过克隆图表功能获得,我已经能够爬取并获取每个计数:
#!/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'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接