Commit 95f58cb1 authored by Jan Provaznik's avatar Jan Provaznik

Merge branch 'gitlab-tracking-meta-4' into 'master'

Add user, project, and namespace in snowplow tracking

See merge request gitlab-org/gitlab!63375
parents b3ebe15e 61d0cc96
...@@ -18,7 +18,7 @@ class Groups::AuditEventsController < Groups::ApplicationController ...@@ -18,7 +18,7 @@ class Groups::AuditEventsController < Groups::ApplicationController
@is_last_page = events.last_page? @is_last_page = events.last_page?
@events = AuditEventSerializer.new.represent(events) @events = AuditEventSerializer.new.represent(events)
Gitlab::Tracking.event(self.class.name, 'search_audit_event') Gitlab::Tracking.event(self.class.name, 'search_audit_event', user: current_user, namespace: group)
end end
private private
......
...@@ -17,7 +17,7 @@ class Projects::AuditEventsController < Projects::ApplicationController ...@@ -17,7 +17,7 @@ class Projects::AuditEventsController < Projects::ApplicationController
@is_last_page = events.last_page? @is_last_page = events.last_page?
@events = AuditEventSerializer.new.represent(events) @events = AuditEventSerializer.new.represent(events)
Gitlab::Tracking.event(self.class.name, 'search_audit_event') Gitlab::Tracking.event(self.class.name, 'search_audit_event', user: current_user, project: project, namespace: project.namespace)
end end
private private
......
...@@ -36,7 +36,7 @@ module API ...@@ -36,7 +36,7 @@ module API
get ':id/dependencies' do get ':id/dependencies' do
authorize! :read_dependencies, user_project authorize! :read_dependencies, user_project
::Gitlab::Tracking.event(self.options[:for].name, 'view_dependencies') ::Gitlab::Tracking.event(self.options[:for].name, 'view_dependencies', project: user_project, user: current_user, namespace: user_project.namespace)
dependency_params = declared_params(include_missing: false).merge(project: user_project) dependency_params = declared_params(include_missing: false).merge(project: user_project)
dependencies = dependencies_by(dependency_params) dependencies = dependencies_by(dependency_params)
......
...@@ -134,7 +134,9 @@ RSpec.describe Groups::AuditEventsController do ...@@ -134,7 +134,9 @@ RSpec.describe Groups::AuditEventsController do
expect_snowplow_event( expect_snowplow_event(
category: 'Groups::AuditEventsController', category: 'Groups::AuditEventsController',
action: 'search_audit_event' action: 'search_audit_event',
user: owner,
namespace: group
) )
end end
end end
......
...@@ -146,7 +146,10 @@ RSpec.describe Projects::AuditEventsController do ...@@ -146,7 +146,10 @@ RSpec.describe Projects::AuditEventsController do
expect_snowplow_event( expect_snowplow_event(
category: 'Projects::AuditEventsController', category: 'Projects::AuditEventsController',
action: 'search_audit_event' action: 'search_audit_event',
project: project,
user: maintainer,
namespace: project.namespace
) )
end end
end end
......
...@@ -10,6 +10,7 @@ RSpec.describe API::Dependencies do ...@@ -10,6 +10,7 @@ RSpec.describe API::Dependencies do
subject(:request) { get api("/projects/#{project.id}/dependencies", user), params: params } subject(:request) { get api("/projects/#{project.id}/dependencies", user), params: params }
let(:params) { {} } let(:params) { {} }
let(:snowplow_standard_context_params) { { user: user, project: project, namespace: project.namespace } }
before do before do
stub_licensed_features(dependency_scanning: true, security_dashboard: true) stub_licensed_features(dependency_scanning: true, security_dashboard: true)
......
...@@ -255,7 +255,7 @@ module API ...@@ -255,7 +255,7 @@ module API
delete do delete do
authorize!(:destroy_package, project) authorize!(:destroy_package, project)
track_package_event('delete_package', :conan, category: 'API::ConanPackages') track_package_event('delete_package', :conan, category: 'API::ConanPackages', user: current_user, project: project, namespace: project.namespace)
package.destroy package.destroy
end end
......
...@@ -62,7 +62,7 @@ module API ...@@ -62,7 +62,7 @@ module API
authorize_upload!(project) authorize_upload!(project)
bad_request!('File is too large') if max_file_size_exceeded? bad_request!('File is too large') if max_file_size_exceeded?
::Gitlab::Tracking.event(self.options[:for].name, 'push_package') ::Gitlab::Tracking.event(self.options[:for].name, 'push_package', user: current_user, project: project, namespace: project.namespace)
create_package_file_params = declared_params.merge(build: current_authenticated_job) create_package_file_params = declared_params.merge(build: current_authenticated_job)
::Packages::Generic::CreatePackageFileService ::Packages::Generic::CreatePackageFileService
...@@ -96,7 +96,7 @@ module API ...@@ -96,7 +96,7 @@ module API
package = ::Packages::Generic::PackageFinder.new(project).execute!(params[:package_name], params[:package_version]) package = ::Packages::Generic::PackageFinder.new(project).execute!(params[:package_name], params[:package_version])
package_file = ::Packages::PackageFileFinder.new(package, params[:file_name]).execute! package_file = ::Packages::PackageFileFinder.new(package, params[:file_name]).execute!
::Gitlab::Tracking.event(self.options[:for].name, 'pull_package') ::Gitlab::Tracking.event(self.options[:for].name, 'pull_package', user: current_user, project: project, namespace: project.namespace)
present_carrierwave_file!(package_file.file) present_carrierwave_file!(package_file.file)
end end
......
...@@ -155,7 +155,7 @@ module API ...@@ -155,7 +155,7 @@ module API
conan_package_reference: params[:conan_package_reference] conan_package_reference: params[:conan_package_reference]
).execute! ).execute!
track_package_event('pull_package', :conan, category: 'API::ConanPackages') if params[:file_name] == ::Packages::Conan::FileMetadatum::PACKAGE_BINARY track_package_event('pull_package', :conan, category: 'API::ConanPackages', user: current_user, project: project, namespace: project.namespace) if params[:file_name] == ::Packages::Conan::FileMetadatum::PACKAGE_BINARY
present_carrierwave_file!(package_file.file) present_carrierwave_file!(package_file.file)
end end
...@@ -170,7 +170,7 @@ module API ...@@ -170,7 +170,7 @@ module API
def track_push_package_event def track_push_package_event
if params[:file_name] == ::Packages::Conan::FileMetadatum::PACKAGE_BINARY && params[:file].size > 0 # rubocop: disable Style/ZeroLengthPredicate if params[:file_name] == ::Packages::Conan::FileMetadatum::PACKAGE_BINARY && params[:file].size > 0 # rubocop: disable Style/ZeroLengthPredicate
track_package_event('push_package', :conan, category: 'API::ConanPackages') track_package_event('push_package', :conan, category: 'API::ConanPackages', user: current_user, project: project, namespace: project.namespace)
end end
end end
......
...@@ -56,7 +56,7 @@ module Gitlab ...@@ -56,7 +56,7 @@ module Gitlab
return if dnt_enabled? return if dnt_enabled?
track_experiment_event_for(experiment_key, action, value, subject: subject) do |tracking_data| track_experiment_event_for(experiment_key, action, value, subject: subject) do |tracking_data|
::Gitlab::Tracking.event(tracking_data.delete(:category), tracking_data.delete(:action), **tracking_data) ::Gitlab::Tracking.event(tracking_data.delete(:category), tracking_data.delete(:action), **tracking_data.merge!(user: current_user))
end end
end end
......
...@@ -196,9 +196,12 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -196,9 +196,12 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
end end
describe '#track_experiment_event', :snowplow do describe '#track_experiment_event', :snowplow do
let(:user) { build(:user) }
context 'when the experiment is enabled' do context 'when the experiment is enabled' do
before do before do
stub_experiment(test_experiment: true) stub_experiment(test_experiment: true)
allow(controller).to receive(:current_user).and_return(user)
end end
context 'the user is part of the experimental group' do context 'the user is part of the experimental group' do
...@@ -213,7 +216,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -213,7 +216,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
category: 'Team', category: 'Team',
action: 'start', action: 'start',
property: 'experimental_group', property: 'experimental_group',
value: 1 value: 1,
user: user
) )
end end
end end
...@@ -230,7 +234,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -230,7 +234,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
category: 'Team', category: 'Team',
action: 'start', action: 'start',
property: 'control_group', property: 'control_group',
value: 1 value: 1,
user: user
) )
end end
end end
...@@ -247,7 +252,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -247,7 +252,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
category: 'Team', category: 'Team',
action: 'start', action: 'start',
property: 'control_group', property: 'control_group',
value: 1 value: 1,
user: user
) )
end end
end end
...@@ -280,7 +286,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -280,7 +286,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
action: 'start', action: 'start',
property: 'control_group', property: 'control_group',
value: 1, value: 1,
label: Digest::MD5.hexdigest('abc') label: Digest::MD5.hexdigest('abc'),
user: user
) )
end end
...@@ -294,7 +301,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -294,7 +301,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
action: 'start', action: 'start',
property: 'control_group', property: 'control_group',
value: 1, value: 1,
label: Digest::MD5.hexdigest('somestring') label: Digest::MD5.hexdigest('somestring'),
user: user
) )
end end
end end
...@@ -313,7 +321,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do ...@@ -313,7 +321,8 @@ RSpec.describe Gitlab::Experimentation::ControllerConcern, type: :controller do
action: 'start', action: 'start',
property: 'control_group', property: 'control_group',
value: 1, value: 1,
label: cookies.permanent.signed[:experimentation_subject_id] label: cookies.permanent.signed[:experimentation_subject_id],
user: user
) )
end end
end end
......
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe API::ConanInstancePackages do RSpec.describe API::ConanInstancePackages do
let(:snowplow_standard_context_params) { { user: user, project: project, namespace: project.namespace } }
include_context 'conan api setup' include_context 'conan api setup'
describe 'GET /api/v4/packages/conan/v1/ping' do describe 'GET /api/v4/packages/conan/v1/ping' do
......
...@@ -19,6 +19,7 @@ RSpec.describe API::GenericPackages do ...@@ -19,6 +19,7 @@ RSpec.describe API::GenericPackages do
let(:user) { personal_access_token.user } let(:user) { personal_access_token.user }
let(:ci_build) { create(:ci_build, :running, user: user, project: project) } let(:ci_build) { create(:ci_build, :running, user: user, project: project) }
let(:snowplow_standard_context_params) { { user: user, project: project, namespace: project.namespace } }
def auth_header def auth_header
return {} if user_role == :anonymous return {} if user_role == :anonymous
......
...@@ -4,6 +4,6 @@ RSpec.shared_examples 'a gitlab tracking event' do |category, action| ...@@ -4,6 +4,6 @@ RSpec.shared_examples 'a gitlab tracking event' do |category, action|
it "creates a gitlab tracking event #{action}", :snowplow do it "creates a gitlab tracking event #{action}", :snowplow do
subject subject
expect_snowplow_event(category: category, action: action) expect_snowplow_event(category: category, action: action, **snowplow_standard_context_params)
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