29

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

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

在此处输入图像描述

我只需要天数。

4

4 回答 4

38

考虑到GitHub API for Users尚未公开该特定信息(当前贡献流的天数),您可能必须:

  • 刮掉它(通过阅读用户的 GitHub 页面提取它)
    正如klamping他的回答中提到的(赞成),要刮掉的 url 将是:
    https://github.com/users/<username>/contributions_calendar_data
    https://github.com/users/<username>/contributions
    (不过,仅适用于公共回购)

    SherlockStd有一个更新的(2017 年 5 月)解析代码如下:

    https://github-stats.com/api/user/streak/current/:username
    
  • 尝试正在使用的项目https://github.com/users/<username>/contributions_calendar_data(如Marques Johansson回答中所列,赞成)

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 日历 API )。
    然后,您可以阅读该信息并在您的博客中报告。

谷歌日历连续


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

如:

$.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
  • ...(你明白了)
于 2013-04-13T13:33:44.343 回答
18

纯 JSON 数据的 URLhttps ://github.com/users/ [username]/contributions_calendar_data [编辑:看起来这个 URL 不再有效)

有一个生成 SVG 的 URL,其他答案已经表明了这一点。就是在这里: https ://github.com/users/[用户名]/contributions

只需在 URL 中将 [username] 替换为您的 github 用户名,您应该能够看到图表。查看其他答案以获得更深入的解释

于 2013-08-02T02:58:59.433 回答
2

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

于 2014-07-17T11:39:20.250 回答
2

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

由于 URLhttps://github.com/users/<username>/contributions_calendar_data不再起作用,您必须从https://github.com/users/<username>/contributions.

不幸的是,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请求新的端点,很高兴找到一种方法来实现它们!

于 2017-05-16T16:53:16.333 回答