require 'ssllabs'
namespace :ssllabs do
desc "Retrieve API information" task :info do api = Ssllabs::Api.new puts api.info.to_json puts "Running assessments: #{api.current_assessments}/#{api.max_assessments}" end desc "Retrieve error messages" task :status_codes do api = Ssllabs::Api.new puts api.get_status_codes.to_json puts "Running assessments: #{api.current_assessments}/#{api.max_assessments}" end desc "Start analysis for a host" task :analyze do unless ENV['HOST'] puts "Specify HOST=... as environment variable" next end api = Ssllabs::Api.new r = api.analyse(host: ENV['HOST'], publish: 'off', startNew: 'on', all: 'done') puts JSON.generate(r) puts "Running assessments: #{api.current_assessments}/#{api.max_assessments}" end desc "Retrieve endpoint data from cache" task :endpoint_data do unless ENV['HOST'] && ENV['IP'] puts "Specify HOST=... and IP=... as environment variable" next end api = Ssllabs::Api.new r = api.get_endpoint_data(host: ENV['HOST'], s: ENV['IP'], fromCache: 'on') puts JSON.generate(r) puts "Running assessments: #{api.current_assessments}/#{api.max_assessments}" end
end