Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获取为拉取请求列表添加/删除的行_Ruby_Git_Octokit - Fatal编程技术网

Ruby 获取为拉取请求列表添加/删除的行

Ruby 获取为拉取请求列表添加/删除的行,ruby,git,octokit,Ruby,Git,Octokit,假设我有一个拉请求ID列表,如下面的例子 如果我只想为每个ID设置两个变量:“添加行”和“删除行”。如何使用octokit为每个pull请求获取这些变量 我想我会在ruby中这样开始: require 'octokit' require 'csv' list = [2825, 2119, 2629] output = [] for id in list output.push(Octokit.pull_request('rubinius/rubinius', id, options =

假设我有一个拉请求ID列表,如下面的例子

如果我只想为每个ID设置两个变量:“添加行”和“删除行”。如何使用octokit为每个pull请求获取这些变量

我想我会在ruby中这样开始:

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个(或者无论
列表中有多少个
对象)。我如何才能让它给我所有3个的数据?

需要“octokit”
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
需要“csv” client=Octokit::client.new:login=>'mylogin',:password=>'mypass' 回购协议='rubinius/rubinius' 数字=[282521192629] CSV.open('results.CSV','w')do | CSV| 数字中的数字 开始 pull=客户。pull_请求(回购,编号) csv
需要“octokit”
需要“csv”
client=Octokit::client.new:login=>username',:password=>password
回购协议='rubinius/rubinius'
numbers=CSV.read('/Users/User/Downloads/numbers.CSV')。展平
CSV.open('results.CSV','w')do | CSV|
数字中的数字
开始
pull=客户。pull_请求(回购,编号)

csv这非常有效,除非它遇到一个已转换为问题的请求ID。然后它给出一个404,不会继续。是否有方法确保它继续到列表中的下一个。例如,尝试数字=[642,630,623]若要复制此错误。@histelheim,请处理
Octokit::NotFound
。请参阅更新的代码。
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