Commit b643c452 authored by James Lopez's avatar James Lopez

Merge branch 'snowflake_npm_frwd' into 'master'

Add npm request forwarding to snowplow

See merge request gitlab-org/gitlab!40174
parents 0a516a93 72181996
---
title: Measure npm request forwarding usage
merge_request: 40174
author:
type: added
...@@ -10,6 +10,7 @@ module API ...@@ -10,6 +10,7 @@ module API
def redirect_registry_request(forward_to_registry, package_type, options) def redirect_registry_request(forward_to_registry, package_type, options)
if forward_to_registry && redirect_registry_request_available? if forward_to_registry && redirect_registry_request_available?
track_event("#{package_type}_request_forward")
redirect(registry_url(package_type, options)) redirect(registry_url(package_type, options))
else else
yield yield
......
...@@ -24,6 +24,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do ...@@ -24,6 +24,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do
shared_examples 'executing redirect' do shared_examples 'executing redirect' do
it 'redirects to package registry' do it 'redirects to package registry' do
expect(helper).to receive(:track_event).with('npm_request_forward').once
expect(helper).to receive(:registry_url).once expect(helper).to receive(:registry_url).once
expect(helper).to receive(:redirect).once expect(helper).to receive(:redirect).once
expect(helper).to receive(:fallback).never expect(helper).to receive(:fallback).never
...@@ -63,6 +64,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do ...@@ -63,6 +64,7 @@ RSpec.describe API::Helpers::Packages::DependencyProxyHelpers do
let(:package_type) { pkg_type } let(:package_type) { pkg_type }
it 'raises an error' do it 'raises an error' do
allow(helper).to receive(:track_event)
expect { subject }.to raise_error(ArgumentError, "Can't build registry_url for package_type #{package_type}") expect { subject }.to raise_error(ArgumentError, "Can't build registry_url for package_type #{package_type}")
end end
end end
......
...@@ -88,12 +88,16 @@ RSpec.describe API::NpmPackages do ...@@ -88,12 +88,16 @@ RSpec.describe API::NpmPackages do
it_behaves_like 'returning the npm package info' it_behaves_like 'returning the npm package info'
context 'with unknown package' do context 'with unknown package' do
subject { get api("/packages/npm/unknown") }
it 'returns a redirect' do it 'returns a redirect' do
get api("/packages/npm/unknown") subject
expect(response).to have_gitlab_http_status(:found) expect(response).to have_gitlab_http_status(:found)
expect(response.headers['Location']).to eq('https://registry.npmjs.org/unknown') expect(response.headers['Location']).to eq('https://registry.npmjs.org/unknown')
end end
it_behaves_like 'a gitlab tracking event', described_class.name, 'npm_request_forward'
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment