module Bundler::Security::Voting::Request
Module responsible for doing request to Coditsu differ
Constants
- ENDPOINT_URL
Differ endpoint url
- HEADERS
Request
headers
Public Class Methods
Assigns basic authorization if provided in the config
@param request [Net::HTTP::Post] prepared http post @param config [OpenStruct] Coditsu config
# File lib/bundler/security/voting/request.rb, line 62 def assign_auth(request, config) return unless config return unless config.api_key return unless config.api_secret request.basic_auth(config.api_key, config.api_secret) end
Assigns payload as json
@param request [Net::HTTP::Post] prepared http post @param payload [Hash] with versions to check
# File lib/bundler/security/voting/request.rb, line 74 def assign_payload(request, payload) request.body = JSON.dump(payload) end
Builds http connection object
# File lib/bundler/security/voting/request.rb, line 33 def build_http uri = URI(differ_url) Net::HTTP.start( uri.host, uri.port, use_ssl: uri.scheme == 'https', verify_mode: OpenSSL::SSL::VERIFY_NONE ) { |http| yield(http, uri) } end
Build http post request and assigns headers and payload
@param uri [URI::HTTPS] @param config [OpenStruct] Coditsu config @param payload [Hash] with versions to check
@return [Net::HTTP::Post]
# File lib/bundler/security/voting/request.rb, line 51 def build_request(uri, config, payload) Net::HTTP::Post .new(uri.request_uri, HEADERS) .tap { |request| assign_auth(request, config) } .tap { |request| assign_payload(request, payload) } end
Execute request to the differ
@param config [OpenStruct] Coditsu config @param payload [Hash] with versions to check
@return [Net::HTTPResponse] response from Coditsu differ
# File lib/bundler/security/voting/request.rb, line 26 def call(config, payload) build_http do |http, uri| http.request(build_request(uri, config, payload)) end end
Provides differ endpoint url
@return [String]
# File lib/bundler/security/voting/request.rb, line 81 def differ_url ENV['CODITSU_DIFFER_URL'] || ENDPOINT_URL end