在Github中,是否有一种方法可以让我看到回购的下载数量?
当前回答
11年后…… 下面是一个小的python3代码片段,用于检索最近100个发行版资产的下载计数:
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
其他回答
我最终写了一个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中有两种下载代码的方法:克隆或作为zip下载一个.git repo,或上传一个文件(例如,二进制文件)供以后下载。
当下载一个回购(克隆或下载压缩),Github不计算下载数量的技术限制。克隆存储库是一个只读操作。不需要身份验证。这个操作可以通过许多协议来完成,包括HTTPS, web页面在浏览器中显示回购时使用的协议。很难数出来。
参见:http://git-scm.com/book/en/Git-on-the-Server-The-Protocols
最近,Github弃用了下载功能。这是因为他们明白Github专注于构建软件,而不是分发二进制文件。
参见:https://github.com/blog/1302-goodbye-uploads
我做了一个web应用程序,以干净的格式显示GitHub发布的统计数据: https://hanadigital.github.io/grev/
这里是一个使用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))
新的实现:
移植到GitHub组合动作重用工作流代码基。
https://github.com/andry81-devops/github-accum-stats
附加功能:
可以计数流量克隆或/和视图。 可以使用GitHub复合动作重用工作流代码基:https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
GitHub工作流文件示例:
.github /工作流/ accum-gh-clone-stats.yml
以前的实现(标记为obsolete):
此实现基于GitHub Actions +统计累加到单独的存储库:https://github.com/andry81-devops/github-clone-count-badge
基于:https://github.com/MShawon/github-clone-count-badge
有一些优点:
用于跟踪的存储库和用于存储流量统计数据的存储库是不同的,您可以直接将统计数据指向提交列表:https://github.com/{{REPO_OWNER}}/{{REPO}}--gh-stats/commits/master/traffic/clones 工作流使用aac -traffic-clone .sh bash脚本积累流量克隆 脚本将统计数据累加到单个文件和一组按年分组并每天分配的文件中:traffic/克隆/by_year/YYYY/YYYY- mm - dd .json
GitHub工作流文件示例:
.github /工作流/ myrepo-gh-clone-stats.yml
推荐文章
- Github:我能看到回购的下载数量吗?
- 如何运行一个github-actions步骤,即使前一步失败,同时仍然失败的工作
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 在GitHub repo上显示Jenkins构建的当前状态
- 如何取消在github上的拉请求?
- HEAD和master的区别
- 在另一个目录中运行操作
- GitHub克隆与OAuth访问令牌
- 我可以在GitHub上对要点进行拉请求吗?
- Git:在推送后删除提交的文件
- 在GitHub中编辑git提交消息
- Github:导入上游分支到fork
- GitHub上的分叉和克隆有什么区别?
- 如何将现有的解决方案从Visual Studio 2013添加到GitHub
- 是否可以在GitHub上搜索特定的文件名?