3

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 月のものです。私は何を取りこぼしたか?

背景: API を使用して、投稿日に指定されたリポジトリに対して行われたコミットを返す小さな Jekyll プラグインを作成しようとしています。

4

1 に答える 1

2

joeyw は、この質問に対する優れた回答をここで提供します

2 番目の引数は sha またはブランチである必要があり、オプションは 3 番目の引数である必要があります。

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

うまく動作します。 これが私の対応するjekyllプラグインです

于 2012-09-30T20:40:43.517 に答える