diff options
-rw-r--r-- | app/models/blob_viewer/package_json.rb | 12 | ||||
-rw-r--r-- | changelogs/unreleased/36020-private-npm-modules.yml | 2 | ||||
-rw-r--r-- | spec/models/blob_viewer/package_json_spec.rb | 7 |
3 files changed, 14 insertions, 7 deletions
diff --git a/app/models/blob_viewer/package_json.rb b/app/models/blob_viewer/package_json.rb index 6ce61e30d3d..46cd2f04f4d 100644 --- a/app/models/blob_viewer/package_json.rb +++ b/app/models/blob_viewer/package_json.rb @@ -21,9 +21,7 @@ module BlobViewer end def package_url - return nil if private? - - "https://www.npmjs.com/package/#{package_name}" + private? ? homepage : npm_url end private @@ -31,5 +29,13 @@ module BlobViewer def private? !!json_data['private'] end + + def homepage + json_data['homepage'] + end + + def npm_url + "https://www.npmjs.com/package/#{package_name}" + end end end diff --git a/changelogs/unreleased/36020-private-npm-modules.yml b/changelogs/unreleased/36020-private-npm-modules.yml index a0122e2b360..5c2585a602e 100644 --- a/changelogs/unreleased/36020-private-npm-modules.yml +++ b/changelogs/unreleased/36020-private-npm-modules.yml @@ -1,5 +1,5 @@ --- -title: Do not generate links for private NPM modules in blob view +title: Do not generate NPM links for private NPM modules in blob view merge_request: 16002 author: Mario de la Ossa type: added diff --git a/spec/models/blob_viewer/package_json_spec.rb b/spec/models/blob_viewer/package_json_spec.rb index 339d4e9e644..5ed2f4400bc 100644 --- a/spec/models/blob_viewer/package_json_spec.rb +++ b/spec/models/blob_viewer/package_json_spec.rb @@ -45,7 +45,8 @@ describe BlobViewer::PackageJson do { "name": "module-name", "version": "10.3.1", - "private": true + "private": true, + "homepage": "myawesomepackage.com" } SPEC end @@ -53,10 +54,10 @@ describe BlobViewer::PackageJson do subject { described_class.new(blob) } describe '#package_url' do - it 'returns nil' do + it 'returns homepage if any' do expect(subject).to receive(:prepare!) - expect(subject.package_url).to be_nil + expect(subject.package_url).to eq('myawesomepackage.com') end end |