diff --git a/lib/license_finder/package_managers/govendor.rb b/lib/license_finder/package_managers/govendor.rb index 321bd9b66..d194e4b02 100644 --- a/lib/license_finder/package_managers/govendor.rb +++ b/lib/license_finder/package_managers/govendor.rb @@ -43,7 +43,7 @@ def packages_from_json(json_string) packages_with_no_sha = [] packages.each do |package| - package_path = package['path'] + package_path = package['origin'] || package['path'] package_revision = package['revision'] if !package_is_versioned?(package) diff --git a/spec/fixtures/config/govendor_with_origin.json b/spec/fixtures/config/govendor_with_origin.json new file mode 100644 index 000000000..8c9b48e0f --- /dev/null +++ b/spec/fixtures/config/govendor_with_origin.json @@ -0,0 +1,17 @@ +{ + "package": [ + { + "checksumSHA1": "4Tc07iR3HloUYC4HNT4xc0875WY=", + "origin": "foo/Bowery/prompt/origin", + "path": "foo/Bowery/prompt", + "revision": "0f1139e9a1c74b57ccce6bdb3cd2f7cd04dd3449", + "revisionTime": "2017-02-19T07:16:37Z" + }, + { + "checksumSHA1": "6VGFARaK8zd23IAiDf7a+gglC8k=", + "path": "foo/dchest/safefile", + "revision": "855e8d98f1852d48dde521e0522408d1fe7e836a", + "revisionTime": "2015-10-22T12:31:44+02:00" + } + ] +} \ No newline at end of file diff --git a/spec/lib/license_finder/package_managers/govendor_spec.rb b/spec/lib/license_finder/package_managers/govendor_spec.rb index 82e999a6c..b5157776c 100644 --- a/spec/lib/license_finder/package_managers/govendor_spec.rb +++ b/spec/lib/license_finder/package_managers/govendor_spec.rb @@ -90,6 +90,31 @@ module LicenseFinder expect(subject.current_packages[1].version).to eq '' end end + + context 'when origin is defined for a package' do + let(:content) do + FakeFS.without do + fixture_from('govendor_with_origin.json') + end + end + + before do + FakeFS.activate! + FileUtils.mkdir_p '/app/vendor' + File.write('/app/vendor/vendor.json', content) + end + + after do + FakeFS.deactivate! + end + + it 'uses origin as path' do + expect(subject.current_packages.length).to eq 2 + + expect(subject.current_packages[0].name).to eq 'foo/Bowery/prompt/origin' + expect(subject.current_packages[1].name).to eq 'foo/dchest/safefile' + end + end end describe '.prepare_command' do