summaryrefslogtreecommitdiff
path: root/lib/license/management.rb
blob: a6e066441578522ce2826438f478af2a719753c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# frozen_string_literal: true

require 'pathname'
require 'yaml'
require 'license_finder'
require 'license/management/loggable'
require 'license/management/verifiable'
require 'license/management/repository'
require 'license/management/report'
require 'license/management/version'

# This applies a monkey patch to the JsonReport found in the `license_finder` gem.
LicenseFinder::JsonReport.prepend(License::Management::Report)

# This monkey patch can be removed once we upgrade to license_finder 5.9.2. Details [here](https://gitlab.com/gitlab-org/gitlab/issues/13748#note_235810786).
module LicenseFinder
  class Bundler < PackageManager
    def definition
      @definition ||=
        begin
          Dir.chdir(project_path.to_s) do
            ::Bundler::Definition.build(detected_package_path, lockfile_path, nil)
          end
        end
    end
  end
end

module License
  module Management
    def self.root
      Pathname.new(File.dirname(__FILE__)).join('../..')
    end
  end
end