如何将来自 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_datahttps://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_calendar_data 的项目(如Marques Johansson 的answer 中所列,已投票)

IonicaBizau/git-stats:

akerl/githubchart(Github 贡献的 SVG 生成器) akerl/githubstats(Github贡献统计)

自己构建该图:请参阅GitHub project git-cal

git-cal 是一个简单的脚本,用于在命令行上查看提交日历(类似于 GitHub 贡献日历)。 图表中的每个块对应于一天,并使用 5 种可能的颜色中的一种进行着色,每种颜色代表当天提交的相对数量。

或建立一项服务,该服务将每天向 Google 日历报告当天的任何新提交(通过类似 nf/streak 的项目使用 Google 日历 API)。 然后,您可以阅读该信息并在您的博客中报告。


您可以找到各种抓取该信息的示例:

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 的逻辑应用其他因素。

https://github.com/akerl/githubchart https://github.com/akerl/githubstats

【讨论】:

+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 的“当前连续”贡献添加到我的博客?的主要内容,如果未能解决你的问题,请参考以下文章

如何优雅的在GitHub贡献代码

如何优雅的在GitHub贡献代码

如何在 Flutter 中添加来自 GitHub 的包?

个人Github贡献汇总

个人Github贡献汇总

Github 添加其他人的 SSH 密钥将授予对所有存储库的访问权限?