diff --git a/lib/gitlab/internal_events.rb b/lib/gitlab/internal_events.rb index ede7502101b393cf42010aab20bde24d466d4827..eb2ba3449fb0fd4d472062c051656790c70bc101 100644 --- a/lib/gitlab/internal_events.rb +++ b/lib/gitlab/internal_events.rb @@ -111,7 +111,7 @@ def send_application_instrumentation_event(event_name, kwargs) user = kwargs[:user] gitlab_sdk_client.identify(user&.id) - gitlab_sdk_client.track(event_name, nil) + gitlab_sdk_client.track(event_name, { project_id: kwargs[:project]&.id, namespace_id: kwargs[:namespace]&.id }) end def gitlab_sdk_client diff --git a/spec/lib/gitlab/internal_events_spec.rb b/spec/lib/gitlab/internal_events_spec.rb index 31e4f6ab127cef1095372ceefec9028fada98d65..7ac583b24ce656a8c7c3118082e76080ed343c96 100644 --- a/spec/lib/gitlab/internal_events_spec.rb +++ b/spec/lib/gitlab/internal_events_spec.rb @@ -273,6 +273,7 @@ def validate_service_ping_context(service_ping_context) let(:app_id) { 'foobar' } let(:url) { 'http://localhost:4000' } let(:sdk_client) { instance_double('GitlabSDK::Client') } + let(:event_kwargs) { { user: user, project: project } } before do described_class.clear_memoization(:gitlab_sdk_client) @@ -281,7 +282,7 @@ def validate_service_ping_context(service_ping_context) stub_env('GITLAB_ANALYTICS_URL', url) end - subject(:track_event) { described_class.track_event(event_name, user: user) } + subject(:track_event) { described_class.track_event(event_name, **event_kwargs) } shared_examples 'does not send a Product Analytics event' do it 'does not call the Product Analytics Ruby SDK' do @@ -303,7 +304,8 @@ def validate_service_ping_context(service_ping_context) it 'calls Product Analytics Ruby SDK', :aggregate_failures do expect(sdk_client).to receive(:identify).with(user.id) - expect(sdk_client).to receive(:track).with(event_name, nil) + expect(sdk_client).to receive(:track) + .with(event_name, { project_id: project.id, namespace_id: project.namespace.id }) track_event end