misc_rbtools/security_tools/redhat_tools/rhel_security_api_client.rb
kenna-bmcdevitt 335831687c adjust tools
2020-10-29 00:14:31 -05:00

44 lines
976 B
Ruby

# Documentation link:
# https://access.redhat.com/documentation/en-us/red_hat_security_data_api/1.0/html/red_hat_security_data_api/overview
# frozen_string_literal: true
require 'rest-client'
require 'json'
class RhelSecurityApiClient
attr_accessor :base_url
def initialize
@base_url = 'https://access.redhat.com/hydra/rest/securitydata'
end
# params is a hash that looks like
# {:params => {:key => value}}
def request(path, params)
r = RestClient::Request.execute(
method: :get,
url: "#{base_url}#{path}",
headers: params
)
if r.code == 200
parse_response(r)
else
"Error HTTP Code: #{r.code}"
end
end
def parse_response(response)
JSON.parse(response.body)
end
def cve_pkg_adv(array_of_json_cves)
array_of_json_cves.map do |json|
{
cve_id: json['CVE'],
advisories: json['advisories'],
affected_packages: json['affected_packages']
}
end
end
end