class Gitlab::Triage::NetworkAdapters::HttpartyAdapter
Public Instance Methods
get(token, url)
click to toggle source
# File lib/gitlab/triage/network_adapters/httparty_adapter.rb, line 11 def get(token, url) response = HTTParty.get( url, headers: { 'User-Agent' => USER_AGENT, 'Content-type' => 'application/json', 'PRIVATE-TOKEN' => token } ) raise_on_unauthorized_error!(response) raise_on_internal_server_error!(response) raise_on_too_many_requests!(response) { more_pages: (response.headers["x-next-page"].to_s != ""), next_page_url: next_page_url(url, response), results: response.parsed_response, ratelimit_remaining: response.headers["ratelimit-remaining"].to_i, ratelimit_reset_at: Time.at(response.headers["ratelimit-reset"].to_i) } end
post(token, url, body)
click to toggle source
# File lib/gitlab/triage/network_adapters/httparty_adapter.rb, line 34 def post(token, url, body) response = HTTParty.post( url, body: body.to_json, headers: { 'User-Agent' => "GitLab Triage #{Gitlab::Triage::VERSION}", 'Content-type' => 'application/json', 'PRIVATE-TOKEN' => token } ) raise_on_unauthorized_error!(response) raise_on_internal_server_error!(response) raise_on_too_many_requests!(response) { results: response.parsed_response, ratelimit_remaining: response.headers["ratelimit-remaining"].to_i, ratelimit_reset_at: Time.at(response.headers["ratelimit-reset"].to_i) } end
Private Instance Methods
next_page_url(url, response)
click to toggle source
# File lib/gitlab/triage/network_adapters/httparty_adapter.rb, line 82 def next_page_url(url, response) return unless response.headers['x-next-page'].present? next_page = "&page=#{response.headers['x-next-page']}" if url.include?('&page') url.gsub(/&page=\d+/, next_page) else url + next_page end end
raise_on_internal_server_error!(response)
click to toggle source
# File lib/gitlab/triage/network_adapters/httparty_adapter.rb, line 66 def raise_on_internal_server_error!(response) return unless response.response.is_a?(Net::HTTPInternalServerError) puts Gitlab::Triage::UI.debug response.inspect if options.debug raise Errors::Network::InternalServerError, 'Internal server error encountered!' end
raise_on_too_many_requests!(response)
click to toggle source
# File lib/gitlab/triage/network_adapters/httparty_adapter.rb, line 74 def raise_on_too_many_requests!(response) return unless response.response.is_a?(Net::HTTPTooManyRequests) puts Gitlab::Triage::UI.debug response.inspect if options.debug raise Errors::Network::TooManyRequests, 'Too many requests made!' end