如何使用octokit.rb获取提交日期

时间:2014-03-17 22:07:48

标签: ruby github octokit

所以我可以使用以下命令从repo中获取提交:

commits = Octokit.commits('tansaku/gitimmersion')

但我无法弄清楚如何获取提交日期。如果我提交个人提交,我可以看到日期存在:

#<Sawyer::Resource:0x007fb045935358 @_agent=<Sawyer::Agent https://api.github.com/>, @_fields=#<Set: {:author, :committer, :message, :tree, :comment_count}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007fb045935358>>, @_rels=#<Sawyer::Relation::Map: [:self]>, @attrs= {:author=> #<Sawyer::Resource:0x007fb045932590 @_agent=<Sawyer::Agent https://api.github.com/>, @_fields=#<Set: {:name, :email, :date}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007fb045932590>>, @_rels=#<Sawyer::Relation::Map: []>, @attrs= {:name=>"Sam Joseph", :email=>"tansaku@gmail.com", :date=>2014-03-10 14:35:53 UTC}>, :committer=> #<Sawyer::Resource:0x007fb0459302b8 @_agent=<Sawyer::Agent https://api.github.com/>, @_fields=#<Set: {:name, :email, :date}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007fb0459302b8>>, @_rels=#<Sawyer::Relation::Map: []>, @attrs= {:name=>"Sam Joseph", :email=>"tansaku@gmail.com", :date=>2014-03-10 14:35:53 UTC}>, :message=>"using command lines", :tree=> #<Sawyer::Resource:0x007fb045927aa0 @_agent=<Sawyer::Agent https://api.github.com/>, @_fields=#<Set: {:sha}>, @_metaclass=#<Class:#<Sawyer::Resource:0x007fb045927aa0>>, @_rels=#<Sawyer::Relation::Map: [:self]>, @attrs={:sha=>"11b345c2fc315b5f7ae6db2e0f6b0570780c20d1"}>, :comment_count=>0}>

但我似乎无法从这些Sawyer对象中提取它们。

1.9.3-p392 :043 > pp commits[0].author.date nil => nil

1.9.3-p392 :047 > pp commits[0].committer.date nil => nil

现在显然我真的很蠢,但有人可以解释我如何从Sawyer对象中获取这些日期吗?

非常感谢提前 CHEERS&GT; SAM

1 个答案:

答案 0 :(得分:3)

这可以解决你的困境吗?

commits[0].commit.author[:date]  
=> 2014-03-10 14:35:53 UTC   
commits[0].commit.committer[:date]   
=> 2014-03-10 14:35:53 UTC