summaryrefslogtreecommitdiff
path: root/lib/license/management
diff options
context:
space:
mode:
authorCan Eldem <celdem@gitlab.com>2020-02-24 14:15:16 +0000
committerCan Eldem <celdem@gitlab.com>2020-02-24 14:15:16 +0000
commit1bd03175f997d381eaac4b2d3756b5d179e697e5 (patch)
tree560b309ede2161c19af1c6989a7e2032333c8eb6 /lib/license/management
parent36e9f083880cfe4e886277c7242295f2506fad91 (diff)
parent7352e16643fed6ed96d5f63476efd4b4bce71c5f (diff)
Merge branch '199078-update-license-finder' into 'master'v2.5.0
Update license_finder gem to 6.0.0 See merge request gitlab-org/security-products/license-management!112
Diffstat (limited to 'lib/license/management')
-rw-r--r--lib/license/management/python/pipenv.rb64
-rw-r--r--lib/license/management/python/pypi.rb44
-rw-r--r--lib/license/management/version.rb2
3 files changed, 1 insertions, 109 deletions
diff --git a/lib/license/management/python/pipenv.rb b/lib/license/management/python/pipenv.rb
deleted file mode 100644
index 482fd25..0000000
--- a/lib/license/management/python/pipenv.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-# frozen_string_literal: true
-
-module License
- module Management
- class Pipenv < LicenseFinder::PackageManager
- include Loggable
-
- def initialize(options = {})
- super
- @lockfile = Pathname('Pipfile.lock')
- end
-
- def current_packages
- @current_packages ||=
- begin
- packages = {}
- each_dependency(groups: allowed_groups) do |name, data, group|
- version = canonicalize(data['version'])
- package = packages.fetch(key_for(name, version)) do |key|
- packages[key] = build_package_for(name, version)
- end
- package.groups << group
- end
- packages.values
- end
- end
-
- def possible_package_paths
- project_path ? [project_path.join(@lockfile)] : [@lockfile]
- end
-
- private
-
- def each_dependency(groups: [])
- dependencies = JSON.parse(IO.read(detected_package_path))
- groups.each do |group|
- dependencies[group].each do |name, data|
- yield name, data, group
- end
- end
- end
-
- def canonicalize(version)
- version.sub(/^==/, '')
- end
-
- def build_package_for(name, version)
- LicenseFinder::PipPackage.new(name, version, PyPI.definition(name, version))
- end
-
- def key_for(name, version)
- "#{name}-#{version}"
- end
-
- def allowed_groups
- %w[default develop] - ignored_groups
- end
-
- def ignored_groups
- @ignored_groups.to_a || []
- end
- end
- end
-end
diff --git a/lib/license/management/python/pypi.rb b/lib/license/management/python/pypi.rb
deleted file mode 100644
index 0397532..0000000
--- a/lib/license/management/python/pypi.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# frozen_string_literal: true
-
-require 'net/hippie'
-
-module License
- module Management
- class PyPI
- include Loggable
-
- def initialize(http)
- @http = http
- end
-
- def definition_for(name, version)
- uri = "https://pypi.org/pypi/#{name}/#{version}/json"
- process(@http.with_retry { |client| client.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(License::Management.http)
- @pypi.definition_for(name, version)
- end
- end
-
- private
-
- def process(response)
- return JSON.parse(response.body).fetch('info', {}) if ok?(response)
-
- log_error([response.class, response.code, response.body].inspect)
- {}
- end
-
- def ok?(response)
- response.is_a?(Net::HTTPSuccess)
- end
- end
- end
-end
diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb
index 7c4b598..69fb69d 100644
--- a/lib/license/management/version.rb
+++ b/lib/license/management/version.rb
@@ -2,6 +2,6 @@
module License
module Management
- VERSION = '2.4.3'
+ VERSION = '2.5.0'
end
end