在Github中,是否有一种方法可以让我看到回购的下载数量?
当前回答
我最终写了一个scraper脚本来查找我的克隆计数:
#!/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替换为just。看看那些漂亮的印花。
其他回答
这里是一个使用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))
很晚了,但这是你想要的答案:
https://api.github.com/repos/ [git username] / [git project] /releases
接下来,在数据中找到您要查找的项目的id。它应该在顶部附近,在url旁边。然后,导航到
https://api.github.com/repos/ [git username] / [git project] /releases/ [id] / assets
名为download_count的字段就是答案。
编辑:在你的用户名和项目名中大写字母很重要
2019年更新:
Ustin的答案是:
API /repos/:owner/:repo/traffic/克隆,以获得每天或每周的克隆总数和崩溃,但是:仅为过去14天。 API /repos/:owner/:repo/releases/:release_id用于获取资产的下载数量(附加到发布的文件),下面提到的字段download_count,但是,正如评论所述,仅针对最近的30个版本。
更新2017
你仍然可以使用GitHub API来获得你的版本的下载计数(这不是确切的要求) 参见“Get a single release”,download_count字段。
不再有流量屏幕提到回购克隆的数量。 相反,你必须依赖第三方服务,比如:
GitItBack(网址:www.netguru.co/gititback),但这还不包括克隆的数量。 githubstats0,下面由Aveek Saha提到。 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库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
你只能看到它是否有下载。
Adam Jagosz在评论中报道:
我用它来工作 curl -H "Accept: application/vnd.github。v3 + json " https://api.github.com/repos/:用户/:回购/版本 我做错了几件事: 我需要一个实际的Github发布(不仅仅是git标签,即使Github确实显示这些下发布,额)。 发行版需要一个资产文件,而不是自动添加的压缩源代码,以便获得下载计数。
我最终写了一个scraper脚本来查找我的克隆计数:
#!/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替换为just。看看那些漂亮的印花。
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仍然处于预览期,所以可能会有变化。
2013年11月更新:
GitHub的发布API现在已经过了预览期,因此不再需要'Accept'标头- http://developer.github.com/changes/2013-11-04-releases-api-is-official/
不过,继续添加'Accept'标头不会造成任何伤害。
推荐文章
- 了解Git和GitHub的基础知识
- 在GitHub上有一个公共回购的私人分支?
- 只用GitHub动作在特定分支上运行作业
- Git合并与强制覆盖
- 是否有一个链接到GitHub下载文件的最新版本的存储库?
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- Github:我能看到回购的下载数量吗?
- 如何运行一个github-actions步骤,即使前一步失败,同时仍然失败的工作
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 在GitHub repo上显示Jenkins构建的当前状态
- 如何取消在github上的拉请求?
- HEAD和master的区别
- 在另一个目录中运行操作
- GitHub克隆与OAuth访问令牌
- 我可以在GitHub上对要点进行拉请求吗?