1

このgistのようなプル リクエスト ID のリストがあるとします。

IDごとに2つの変数が必要な場合:「追加された行」と「削除された行」。octokit を使用して、プル リクエストごとにこれらの変数を取得するにはどうすればよいですか?

ルビーで次のように始めると思います:

require 'octokit'
require 'csv'

list = [2825, 2119, 2629]
output = []

for id in list
   output.push(Octokit.pull_request('rubinius/rubinius', id, options = {}))
 end

begin
   file = File.open("/Users/Username/Desktop/pr_mining_output.txt", "w")
   file.write(output) 
 rescue IOError => e
   #some error occur, dir not writable etc.
 ensure
   file.close unless file == nil
 end

しかし、これは単にファイルを上書きし、3 つではなく 1 つの結果を返すだけのようです (または、listオブジェクトに多くの結果があります。3 つすべてのデータを取得するにはどうすればよいですか?

4

2 に答える 2

2
require 'octokit'
require 'csv'

client = Octokit::Client.new :login => 'mylogin', :password => 'mypass'
repo = 'rubinius/rubinius'
numbers = [2825, 2119, 2629]

CSV.open('results.csv', 'w') do |csv|
  for number in numbers
    begin   
      pull = client.pull_request(repo, number)
      csv << [pull.number, pull.additions, pull.deletions]
    rescue Octokit::NotFound
    end
  end    
end
于 2013-12-21T17:41:56.783 に答える
0
require 'octokit'
require 'csv'

client = Octokit::Client.new :login => 'username', :password => 'password'
repo = 'rubinius/rubinius'
numbers = CSV.read('/Users/User/Downloads/numbers.csv').flatten

CSV.open('results.csv', 'w') do |csv|
    for number in numbers
      begin
        pull = client.pull_request(repo, number)
        csv << [pull.number, pull.additions, pull.deletions]
      rescue
        csv << [number, 0, 0]
        next
      end
    end
  end
于 2013-12-21T20:03:38.950 に答える