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

时间:2010-12-02 18:17:59

标签: github repo

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

18 个答案:

答案 0 :(得分:94)

2017年更新

您仍然可以使用GitHub APIget the download count for your releases(不是完全所要求的内容)
请参阅“Get a single release”,download_count字段。

不再有交通屏幕提及回购克隆的数量 相反,您必须依赖第三方服务,如:

Git 2.14.2 release


2014年8月更新

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

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


2013年10月更新

正如below提到的andyberry88,以及我detailed last July,GitHub现在proposes releases(请参阅its API),has a download_count field。< / p> Michele Milidoni中的{p> his (upvoted) answer确实在his python script中使用该字段 (very small extract

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

您只能看到它是否有下载。

答案 1 :(得分:74)

我在javascript中编写了一个small web application,用于显示Github上任何项目的可用版本中所有资产的下载次数。您可以在此处试用该应用程序:http://somsubhra.github.io/github-release-stats/

答案 2 :(得分:12)

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中,因此可能会发生变化。

2013年11月更新:

GitHub的发布API现已超出预览期限,因此不再需要“接受”标头 - http://developer.github.com/changes/2013-11-04-releases-api-is-official/

虽然继续添加'Accept'标题不会有任何损害。

答案 3 :(得分:8)

VISITOR计数应该在您的信息中心&gt;下方提供。流量(或统计数据或见解):

enter image description here

答案 4 :(得分:7)

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

下载repo(克隆或下载为zip)时,Github不计算技术限制的下载次数。克隆存储库是一种只读操作。无需身份验证。此操作可以通过许多协议来完成,包括HTTPS,网页用于在浏览器中显示repo的相同协议。这很难计算。

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

最近,Github弃用了下载功能。这是因为他们了解Github专注于构建软件,而不是分发二进制文件。

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

答案 5 :(得分:7)

如前所述,GitHub API返回二进制文件发布的下载次数。我开发了little script以便通过命令行轻松获得下载次数。

答案 6 :(得分:6)

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

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的字段是您的答案。

编辑:资金在您的用户名和项目名称中很重要

答案 7 :(得分:5)

Github API不再提供所需信息。请查看releases page中提到的Stan Towianski's answer。正如我们在对该答案的评论中所讨论的那样,Github API仅报告他为每个版本提供的三个文件中的一个的下载。

我已经检查过这些问题的其他答案中提供的解决方案。 Vonc's answer提出了Michele Milidoni's solution的重要部分。我使用以下结果安装了他的gdc脚本

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

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

如果您想在不安装任何内容的情况下进行检查,请尝试web page,其中Somsubhra安装了his answer中提到的解决方案。填写&#39; stant&#39;作为Github用户名和&#39; mdcsvimporter2015&#39;作为存储库名称,您将看到如下内容:

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

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

答案 8 :(得分:3)

我最后编写了一个刮刀脚本来查找我的克隆计数:

#!/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替换为.,以查看那些精美的打印。

答案 9 :(得分:3)

要查看下载发行文件/软件包的次数,可以转到https://githubstats0.firebaseapp.com

它为您提供了总下载次数,以及每个发行标签的总下载量的细分。

答案 10 :(得分:2)

根据VonC和Michele Milidoni的回答,我创建了this bookmarklet,显示了github托管已发布二进制文件的下载统计信息。

注意:由于issues with browsers与内容安全策略实现相关,bookmarklet可能会暂时违反某些CSP指令,并且在启用CSP时在github上运行时基本上可能无法正常运行。

  

虽然非常气馁,但你可以在Firefox中禁用CSP   临时解决方法。打开about:config并设置security.csp.enable   为假。

答案 11 :(得分:2)

我制作了一个网络应用程序,以干净的格式显示GitHub发布统计信息: https://hanadigital.github.io/grev/

答案 12 :(得分:1)

如前所述,您可以获取有关Releases via the API的信息。

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

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

示例:Example

答案 13 :(得分:1)

2019年的答案:

1)对于克隆数,您可以使用https://developer.github.com/v3/repos/traffic/#clones(但请注意,它仅返回最近14天的计数) 2)要获取资产(版本附带的文件)的下载数量,可以使用https://developer.github.com/v3/repos/releases/#get-a-single-release(作为响应的资产列表项的“ download_count”属性完全正确)

答案 14 :(得分:0)

试图使其更清楚:
对于这个github项目:stant / mdcsvimporter2015
https://github.com/stant/mdcsvimporter2015
发布时间为 https://github.com/stant/mdcsvimporter2015/releases

转到http或https :(注释已添加&#34; api。&#34;和&#34; / repos&#34;)
https://api.github.com/repos/stant/mdcsvimporter2015/releases

你将得到这个json输出,你可以搜索&#34; download_count&#34;:

    "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

答案 15 :(得分:0)

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

Python脚本:

用法:

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

支持:

  • 支持开箱即用的 Python 2 Python 3
  • 既可以用作独立模块,也可以用作Python模块。

答案 16 :(得分:0)

这是使用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))

答案 17 :(得分:0)

11 年后...
这是一个用于检索 last 100 release 资产的下载计数的小型 python3 代码段:

import requests

owner = "twbs"
repo = "bootstrap"
h = {"Accept": "application/vnd.github.v3+json"}
u = f"https://api.github.com/repos/{owner}/{repo}/releases?per_page=100"
r = requests.get(u, headers=h).json()
r.reverse() # older tags first
for rel in r:
  if rel['assets']:
    tag = rel['tag_name']
    dls = rel['assets'][0]['download_count']
    pub = rel['published_at']
    print(f"Pub: {pub} | Tag: {tag} | Dls: {dls} ")

Pub: 2013-07-18T00:03:17Z | Tag: v1.2.0 | Dls: 1193 
Pub: 2013-08-19T21:20:59Z | Tag: v3.0.0 | Dls: 387786 
Pub: 2013-10-30T17:07:16Z | Tag: v3.0.1 | Dls: 102278 
Pub: 2013-11-06T21:58:55Z | Tag: v3.0.2 | Dls: 381136 
...
Pub: 2020-12-07T16:24:37Z | Tag: v5.0.0-beta1 | Dls: 93943 

Demo