如何将来自 github 的“当前连续”贡献添加到我的博客?
Posted
技术标签:
【中文标题】如何将来自 github 的“当前连续”贡献添加到我的博客?【英文标题】:How can I add "current streak" of contributions from github to my blog? 【发布时间】:2013-04-05 10:08:37 【问题描述】:我有一个使用 Rails 构建的个人博客。我想在我的网站上添加一个部分,显示我当前的 github 贡献。这样做的最佳方法是什么?
编辑:为了澄清,这就是我想要的:
我只需要天数。
【问题讨论】:
【参考方案1】:考虑到GitHub API for Users 尚未公开该特定信息(当前贡献流的天数),您可能必须:
抓取它(通过阅读用户的 GitHub 页面提取它)
正如klamping 在his answer 中提到的(已投票),废弃的网址为:https://github.com/users/<username>/contributions_calendar_data
https://github.com/users/<username>/contributions
(不过,仅适用于公共回购)
SherlockStd 下面有一个updated (May 2017) parsing code:
https://github-stats.com/api/user/streak/current/:username
尝试使用https://github.com/users/<username>/contributions
的项目(如Marques Johansson 的answer 中所列,已投票)_calendar_data
或建立一项服务,该服务将每天向 Google 日历报告当天的任何新提交(通过类似 nf/streak 的项目使用 Google 日历 API)。 然后,您可以阅读该信息并在您的博客中报告。
git-cal
是一个简单的脚本,用于在命令行上查看提交日历(类似于 GitHub 贡献日历)。 图表中的每个块对应于一天,并使用 5 种可能的颜色中的一种进行着色,每种颜色代表当天提交的相对数量。
您可以找到各种抓取该信息的示例:
github_team_calendar.py
weekend-commits.js
如:
$.getJSON('https://github.com/users/' + location.pathname.replace(/\//g, '') + '/contributions_calendar_data', weekendWork);
leaderboard.rb
:
喜欢:
leaderboard = members.map do |u|
user_stats = get("https://github.com/users/#u/contributions_calendar_data")
total = user_stats.map |s| s[1] .reduce(&:+)
[u, total]
end
...(你明白了)
【讨论】:
过时了,看my comment【参考方案2】:纯 JSON 数据的 URL是: https://github.com/users/[username]/contributions_calendar_data [编辑:看起来这个 URL 不再有效)
有一个生成 SVG 的 URL,其他答案已经表明了这一点。就是在这里: https://github.com/users/[username]/contributions
只需在 URL 中将 [username] 替换为您的 github 用户名,您应该能够看到图表。查看其他答案以获得更深入的解释
【讨论】:
得到的数据仅供公共回购。 现在已经过时了吗? @IonicăBizău 看起来像。一种可能的选择是通过the Users api 访问他们的数据,尽管这包括观看内容等事件。 过时了,看my comment【参考方案3】:如果您想要与 GitHub 图表的视觉外观相匹配的东西,请查看这些使用 https://github.com/users/<username>/contributions_calendar_data
的项目,但也根据 Github 的逻辑应用其他因素。
【讨论】:
+1。很好的发现。我在上面的答案中包含了这些项目,以获得更多可见性。【参考方案4】:[项目已弃用且暂时不可用,将很快重新上线。]
由于 URL https://github.com/users/<username>/contributions_calendar_data
不再起作用,您必须从 https://github.com/users/<username>/contributions
解析 SVG。
不幸的是,Github 喜欢安全性,并且在其服务器上禁用了 CORS。
为了解决这个问题,我为我和所有需要它的人设置了一个 API,只需 GET https://github-stats.com/api/user/streak/current/username
(允许使用 CORS),你会得到并回答如下:
"success":true,
"currentStreak": 3
https://github-stats.com 将很快实现更多统计端点:)
请在https://github.com/SherloxFR/github-stats.com/issues 询问新的端点,很高兴找到实现它们的方法!
【讨论】:
做得很好。 +1。我在答案中包含了指向您帖子的链接,以提高知名度。 但实际上由于 CORS 无法正常工作,所以我为此部署了一个服务器,今晚我将发布 URL CORS (en.wikipedia.org/wiki/Cross-origin_resource_sharing)...数字! GitHub 具有安全意识。 我已经编辑了答案并包含了您的 github-stats 端点。 @VonC 对此感到抱歉,但我更新了端点,请更新您的答案。以上是关于如何将来自 github 的“当前连续”贡献添加到我的博客?的主要内容,如果未能解决你的问题,请参考以下文章