如何从github添加“当前连胜”贡献到我的博客?

时间:2013-04-12 18:55:28

标签: html ruby-on-rails ruby github html-parsing

我有一个使用rails构建的个人博客。我想在我的网站上添加一个部分,显示我目前的github贡献。这样做的最佳方式是什么?

编辑:为了澄清,这就是我想要的:

enter image description here

只需要天数就可以了。

4 个答案:

答案 0 :(得分:37)

考虑到GitHub API for Users尚未公开该特定信息(当前捐款流的天数),您可能需要:

  • 刮掉它(通过阅读用户的GitHub页面提取它)
    正如klamping中提到的his answer(upvoted),废弃的网址将是:
    <删除> 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 _calendar_data 的项目(如Marques Johanssonanswer中所列,已投票)

git-stats

https://github.com/akerl/githubchart

https://raw.github.com/k4rthik/git-cal/master/screenshots/img1.png

  

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

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

Google Calendar streak


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

如:

$.getJSON('https://github.com/users/' + location.pathname.replace(/\//g, '') + '/contributions_calendar_data', weekendWork);

像:

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
  • ......(你明白了)

答案 1 :(得分:17)

普通JSON数据的网址https://github.com/users/[username]/contributions_calendar_data [编辑:看起来此网址不再有效]

有一个生成SVG的URL,其他答案已经指出。那是在这里: https://github.com/users/[username]/contributions

只需用URL中的github用户名替换[username],您就可以看到图表了。请参阅其他答案以获得更深入的解释

答案 2 :(得分:2)

如果你想要一些与GitHub图表的视觉外观相匹配的东西,请查看这些使用https://github.com/users/<username>/contributions_calendar_data的项目,同时根据Github的逻辑应用其他因素。

答案 3 :(得分:2)

[项目暂时弃用且不可用,很快将重新上线。]

由于网址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询问新的终点,很高兴找到实施它们的方法!