Sha256: efda03769329e3029fec05590c6717c146f7f8b6d96ee0810a72408c9177ba02
Contents?: true
Size: 1.45 KB
Versions: 6
Compression:
Stored size: 1.45 KB
Contents
require 'json' require 'pty' module Bellows class Gerrit def self.run_cmd(command) return %x{ssh review gerrit #{command}} end #defined here so we can easily stub out for testing def self.stream_events_cmd return "ssh review gerrit stream-events" end def self.reviews(project, status="open", branch="master") # Assume projects without a slash are 'openstack' org projects #if not x =~ /.*\/.*/ then # project = "openstack/#{project}" #end reviews = [] out=Gerrit.run_cmd(%{query status:#{status} project:#{project} branch:#{branch} limit:500 --current-patch-set --format JSON}) out.each_line do |line| data = JSON.parse(line) if data['project'] and data['project'] == "#{project}" and data['branch'] and data['branch'] == branch if block_given? yield data else reviews << data end end end reviews end def self.comment(revision, message, verify_vote=0) Gerrit.run_cmd(%{review --verified #{verify_vote} -m \"'#{message}'\" #{revision}}) end def self.stream_events(type=nil) PTY.spawn stream_events_cmd do |read, write, pid| loop do begin data = JSON.parse(read.gets) if type.nil? or data['type'] == type then yield data end rescue break end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems