在Github中,是否有一种方法可以让我看到回购的下载数量?
当前回答
新的实现:
移植到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
其他回答
基于VonC和Michele Milidoni的答案,我创建了这个bookmarklet,它显示了github托管发布的二进制文件的下载统计数据。
注意:由于浏览器与内容安全策略实现相关的问题,bookmarklet可能会暂时违反一些CSP指令,并且在启用CSP时在github上运行时基本可能无法正常工作。
虽然这是非常不鼓励的,你可以禁用CSP在Firefox作为 临时的解决方案。打开about:config并设置security.csp.enable 为假。
为了更清楚地说明这一点: 对于这个github项目:stant/ mdcsvimportter2015 https://github.com/stant/mdcsvimporter2015 在 https://github.com/stant/mdcsvimporter2015/releases
转到HTTP或https:(注意添加了“api.”和“/repos”) https://api.github.com/repos/stant/mdcsvimporter2015/releases
你会得到这个json输出,你可以搜索"download_count":
"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
如前所述,您可以通过API获得有关您的版本的信息。
对于那些使用WordPress的人,我开发了这个插件:GitHub Release Downloads。它可以让你获得下载计数,链接和更多的信息发布GitHub存储库。
为了解决最初的问题,短代码[grd_count user=" user " repo="MyRepo"]将返回存储库的下载数量。这个数字对应于一个GitHub存储库的所有版本的所有下载计数值的总和。
例子:
如前所述,GitHub API返回二进制文件发布的下载计数。我开发了一个小脚本,通过命令行轻松获得下载计数。
这里是一个使用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))
推荐文章
- 了解Git和GitHub的基础知识
- 在GitHub上有一个公共回购的私人分支?
- 只用GitHub动作在特定分支上运行作业
- Git合并与强制覆盖
- 是否有一个链接到GitHub下载文件的最新版本的存储库?
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- Github:我能看到回购的下载数量吗?
- 如何运行一个github-actions步骤,即使前一步失败,同时仍然失败的工作
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 在GitHub repo上显示Jenkins构建的当前状态
- 如何取消在github上的拉请求?
- HEAD和master的区别
- 在另一个目录中运行操作
- GitHub克隆与OAuth访问令牌
- 我可以在GitHub上对要点进行拉请求吗?