diff options
| author | mo khan <mo.khan@gmail.com> | 2020-03-18 17:40:46 +0000 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-03-18 17:40:46 +0000 |
| commit | 08204f2633e2548326f7623ff73dd8db6461c963 (patch) | |
| tree | dac8cd040cb3cc9ad6c0e0b4aa46cda67005b16c /lib/license/finder | |
| parent | 783b136f3e39aca8c8ec4c8d65d44bbf2dbf5d74 (diff) | |
| parent | d900a27a7291fcbc2d699fff8590b4e19eaf475a (diff) | |
Merge branch '33727-airgap' into 'master'v3.1.0
Scan maven projects with dependencies from a custom repository
See merge request gitlab-org/security-products/license-management!120
Diffstat (limited to 'lib/license/finder')
| -rw-r--r-- | lib/license/finder/ext.rb | 38 | ||||
| -rw-r--r-- | lib/license/finder/ext/license.rb | 7 | ||||
| -rw-r--r-- | lib/license/finder/ext/nuget.rb | 21 | ||||
| -rw-r--r-- | lib/license/finder/ext/shared_helpers.rb | 19 |
4 files changed, 51 insertions, 34 deletions
diff --git a/lib/license/finder/ext.rb b/lib/license/finder/ext.rb index c431b6b..9788abb 100644 --- a/lib/license/finder/ext.rb +++ b/lib/license/finder/ext.rb @@ -1,38 +1,8 @@ # frozen_string_literal: true +require 'license/finder/ext/license' +require 'license/finder/ext/nuget' +require 'license/finder/ext/shared_helpers' + # Apply patch to the JsonReport found in the `license_finder` gem. LicenseFinder::JsonReport.prepend(License::Management::Report) - -module LicenseFinder - class Nuget - def prepare_command - "mono /usr/local/bin/nuget.exe restore -Verbosity detailed" - end - - def license_urls(dependency) - filename = "#{dependency.name}.#{dependency.version}.nupkg" - files = Dir["**/#{filename}"] + - Dir.glob(File.join(Dir.home, '.nuget', 'packages', '**', '**', filename.downcase)) - - return if files.empty? - - Zip::File.open(files.first) do |zipfile| - Nuget.nuspec_license_urls(zipfile.read(dependency.name + '.nuspec')) - end - end - end - - module SharedHelpers - class Cmd - def self.run(command) - stdout, stderr, status = Open3.capture3(command) - ::LicenseFinder::Core.default_logger.info(self.class, stdout) if ENV['CI_DEBUG_TRACE'] == 'true' - [stdout, stderr, status] - end - end - end - - class License - attr_reader :short_name, :pretty_name, :other_names - end -end diff --git a/lib/license/finder/ext/license.rb b/lib/license/finder/ext/license.rb new file mode 100644 index 0000000..cca3bd7 --- /dev/null +++ b/lib/license/finder/ext/license.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module LicenseFinder + class License + attr_reader :short_name, :pretty_name, :other_names + end +end diff --git a/lib/license/finder/ext/nuget.rb b/lib/license/finder/ext/nuget.rb new file mode 100644 index 0000000..fc06e21 --- /dev/null +++ b/lib/license/finder/ext/nuget.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module LicenseFinder + class Nuget + def prepare_command + "mono /usr/local/bin/nuget.exe restore -Verbosity detailed" + end + + def license_urls(dependency) + filename = "#{dependency.name}.#{dependency.version}.nupkg" + files = Dir["**/#{filename}"] + + Dir.glob(File.join(Dir.home, '.nuget', 'packages', '**', '**', filename.downcase)) + + return if files.empty? + + Zip::File.open(files.first) do |zipfile| + Nuget.nuspec_license_urls(zipfile.read(dependency.name + '.nuspec')) + end + end + end +end diff --git a/lib/license/finder/ext/shared_helpers.rb b/lib/license/finder/ext/shared_helpers.rb new file mode 100644 index 0000000..4e61261 --- /dev/null +++ b/lib/license/finder/ext/shared_helpers.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module LicenseFinder + module SharedHelpers + class Cmd + def self.run(command) + stdout, stderr, status = Open3.capture3(command) + debug([command, stdout].join('\n')) + [stdout, stderr, status] + end + + def self.debug(message) + return unless ENV['CI_DEBUG_TRACE'] == 'true' + + ::LicenseFinder::Core.default_logger.info(self.class, message) + end + end + end +end |
