使用Ruby& Github API按日期过滤提交

时间:2012-09-29 00:26:44

标签: ruby github jekyll

我正在使用实现Github API v3的ruby gem 'octokit'。大多数工作得很好但我似乎无法按日期过滤。我相信我的语法和时间格式是正确的,但看起来我的选项被忽略,API返回过去的35个条目,无论是日期还是日期。

这是一个可重复性最小的例子(安装octokit gem之后)。

require 'octokit'
require 'time'

@day = "2012-09-27"
@until = DateTime.parse(@date).iso8601
@since = (DateTime.parse(@day) - 60*60*48).iso8601
a = Octokit.commits({:username => "cboettig", :repo => "labnotebook", :since => @since, :until => @until})

查看最后一项输出的日期

a.last.commit.author.date

明确的日子不起作用

b = Octokit.commits({:username => "cboettig", :repo => "labnotebook", :since => "2012-09-27T00:00:00+00:00"})

b.last.commit.author.date

我在两个例子中得到的日期是8月份,超出给定的指定范围。我错过了什么?

背景:我正在尝试编写一个小的Jekyll插件,该插件使用API​​在帖子当天返回对指定仓库的提交。

1 个答案:

答案 0 :(得分:2)

joeyw gives a great answer to this question here

第二个参数应该是sha或branch,而options应该是第三个参数,例如

Octokit.commits("cboettig/labnotebook", "master", :since => "2012-09-28T00:00:00+00:00").length

Octokit.commits("cboettig/labnotebook", nil, :since => "2012-09-28T00:00:00+00:00").length

工作得很好。 Here's my corresponding jekyll plugin