Sha256: d7d1233d929b33312cd0c0d25c26412c697a183caea92ac12c94a892c363948e
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
require 'json' require 'net/http' require "extreme_feedback_device/job" module ExtremeFeedbackDevice class Jenkins < ::Struct.new(:user, :token, :base_url) def full_url ::File.join(base_url, 'api', 'json?tree=jobs[name,color,healthReport[score]]') end def full_uri URI(full_url) end def jobs json = get_json jobs_from_json(json) if json.is_a?(String) end private def jobs_from_json(json) json_objects = [] begin json_objects = ::JSON.parse(json) rescue ::JSON::JSONError end json_objects["jobs"].map { |json_object| ExtremeFeedbackDevice::Job.from_json_object(json_object) } end def get_json request = ::Net::HTTP::Get.new(full_uri) request.basic_auth(user, token) response = nil begin response = ::Net::HTTP.start(full_uri.hostname, full_uri.port) do |http| http.request(request) end rescue SocketError => e response = e end if response.is_a?(::Net::HTTPSuccess) return response.body else return nil end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
extreme_feedback_device-0.0.3 | lib/extreme_feedback_device/jenkins.rb |