summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Gemfile.lock2
-rw-r--r--lib/license_finder/package_managers/pipenv.rb4
-rw-r--r--lib/license_finder/package_utils/pypi.rb29
-rw-r--r--license-management.gemspec3
4 files changed, 11 insertions, 27 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index 4978f8d..0a91a04 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -3,6 +3,7 @@ PATH
specs:
license-management (2.3.1)
license_finder (~> 5.11)
+ net-hippie (~> 0.2)
GEM
remote: https://rubygems.org/
@@ -15,6 +16,7 @@ GEM
toml (= 0.2.0)
with_env (= 1.1.0)
xml-simple
+ net-hippie (0.2.7)
parslet (1.8.2)
rspec (3.9.0)
rspec-core (~> 3.9.0)
diff --git a/lib/license_finder/package_managers/pipenv.rb b/lib/license_finder/package_managers/pipenv.rb
index e35b85d..6af53bf 100644
--- a/lib/license_finder/package_managers/pipenv.rb
+++ b/lib/license_finder/package_managers/pipenv.rb
@@ -50,11 +50,11 @@ module LicenseFinder
end
def allowed_groups
- %w[default develop] - ignored_groups.to_a
+ %w[default develop] - ignored_groups
end
def ignored_groups
- @ignored_groups || []
+ @ignored_groups.to_a || []
end
end
end
diff --git a/lib/license_finder/package_utils/pypi.rb b/lib/license_finder/package_utils/pypi.rb
index fac02ec..30856bd 100644
--- a/lib/license_finder/package_utils/pypi.rb
+++ b/lib/license_finder/package_utils/pypi.rb
@@ -1,39 +1,20 @@
# frozen_string_literal: true
-require 'net/http'
-require 'openssl'
+require 'net/hippie'
module LicenseFinder
class PyPI
- CONNECTION_ERRORS = [
- EOFError,
- Errno::ECONNREFUSED,
- Errno::ECONNRESET,
- Errno::ECONNRESET,
- Errno::EHOSTUNREACH,
- Errno::EINVAL,
- Net::OpenTimeout,
- Net::ProtocolError,
- Net::ReadTimeout,
- OpenSSL::OpenSSLError,
- OpenSSL::SSL::SSLError,
- SocketError,
- Timeout::Error
- ].freeze
-
class << self
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 *CONNECTION_ERRORS
+ 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
+ def request(url, limit = 10)
+ client = Net::Hippie::Client.new
+ response = client.with_retry { client.get(url) }
response.is_a?(Net::HTTPRedirection) && limit.positive? ? request(response['location'], limit - 1) : response
end
end
diff --git a/license-management.gemspec b/license-management.gemspec
index c58bbdc..46278f0 100644
--- a/license-management.gemspec
+++ b/license-management.gemspec
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
spec.summary = 'License Management job for GitLab CI.'
spec.description = 'License Management job for GitLab CI.'
spec.homepage = 'https://gitlab.com/gitlab-org/security-products/license-management'
- spec.license = 'GitLab EE'
+ spec.license = 'Nonstandard'
spec.metadata['allowed_push_host'] = 'https://example.com'
spec.metadata['homepage_uri'] = spec.homepage
@@ -28,5 +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_development_dependency 'rspec', '~> 3.9'
end