diff options
| -rw-r--r-- | lib/license/management/pypi.rb | 40 | ||||
| -rw-r--r-- | license-management.gemspec | 2 |
2 files changed, 8 insertions, 34 deletions
diff --git a/lib/license/management/pypi.rb b/lib/license/management/pypi.rb index 3c7e0ff..c0254e6 100644 --- a/lib/license/management/pypi.rb +++ b/lib/license/management/pypi.rb @@ -13,33 +13,18 @@ module License end def definition_for(name, version) - uri = URI.parse("https://pypi.org/pypi/#{name}/#{version}/json") - definition = process(http.with_retry { |client| client.get(uri, headers: { 'Host' => uri.host }) }) - log_info([name, version, definition["license"]].inspect) - definition + uri = "https://pypi.org/pypi/#{name}/#{version}/json" + process(http.get(uri)).tap do |definition| + log_info([name, version, definition["license"]].inspect) + end rescue *Net::Hippie::CONNECTION_ERRORS {} end class << self - #def definition(name, version) - #@pypi ||= new - #@pypi.definition_for(name, version) - #end - def definition(name, version) - response = request("https://pypi.org/pypi/#{name}/#{version}/json") - response.is_a?(Net::HTTPSuccess) ? JSON.parse(response.body).fetch('info', {}) : {} - rescue *Net::Hippie::CONNECTION_ERRORS - {} - end - - def request(location, limit = 10) - uri = URI(location) - http = Net::HTTP.new(uri.host, uri.port) - http.use_ssl = true - response = http.get(uri.request_uri).response - response.is_a?(Net::HTTPRedirection) && limit.positive? ? request(response['location'], limit - 1) : response + @pypi ||= new + @pypi.definition_for(name, version) end end @@ -53,23 +38,12 @@ module License end def default_http - @default_http ||= Net::Hippie::Client.new(headers: default_headers).tap do |client| + @default_http ||= Net::Hippie::Client.new.tap do |client| client.logger = ::Logger.new('http.log') client.follow_redirects = 3 end end - def user_agent - "https://gitlab.com/gitlab-org/security-products/license-management #{License::Management::VERSION}" - end - - def default_headers - { - 'User-Agent' => user_agent, - 'Accept' => '*/*', - } - end - def ok?(response) response.is_a?(Net::HTTPSuccess) end diff --git a/license-management.gemspec b/license-management.gemspec index 46278f0..492fd2d 100644 --- a/license-management.gemspec +++ b/license-management.gemspec @@ -28,6 +28,6 @@ Gem::Specification.new do |spec| spec.require_paths = ['lib'] spec.add_dependency 'license_finder', '~> 5.11' - spec.add_dependency 'net-hippie', '~> 0.2' + spec.add_dependency 'net-hippie', '~> 0.3' spec.add_development_dependency 'rspec', '~> 3.9' end |
