diff --git a/app/models/resource_timebox_event.rb b/app/models/resource_timebox_event.rb index dbb2b428c7be0af966a87987ebd1aa2cc7ae5c52..ac1647839452374b95e9c9eb25f31f062875b6e6 100644 --- a/app/models/resource_timebox_event.rb +++ b/app/models/resource_timebox_event.rb @@ -29,10 +29,10 @@ def usage_metrics case self when ResourceMilestoneEvent Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_milestone_changed_action(author: user) - when ResourceIterationEvent - Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_iteration_changed_action(author: user) else # no-op end end end + +ResourceTimeboxEvent.prepend_if_ee('EE::ResourceTimeboxEvent') diff --git a/ee/app/models/ee/resource_timebox_event.rb b/ee/app/models/ee/resource_timebox_event.rb new file mode 100644 index 0000000000000000000000000000000000000000..e352a7bde3af85b5b394ca1f6da705d788b23ae8 --- /dev/null +++ b/ee/app/models/ee/resource_timebox_event.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module EE + module ResourceTimeboxEvent + extend ::Gitlab::Utils::Override + + private + + override :usage_metrics + def usage_metrics + case self + when ResourceIterationEvent + ::Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_iteration_changed_action(author: user) + else + super + end + end + end +end diff --git a/ee/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter.rb b/ee/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter.rb index ceb28309776dc5af49daf575b26054fb2fc6af95..3ec0acf7cf534863eb239f3831a8e5bb9d994e4d 100644 --- a/ee/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter.rb +++ b/ee/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter.rb @@ -7,11 +7,36 @@ module IssueActivityUniqueCounter extend ActiveSupport::Concern ISSUE_HEALTH_STATUS_CHANGED = 'g_project_management_issue_health_status_changed' + ISSUE_ITERATION_CHANGED = 'g_project_management_issue_iteration_changed' + ISSUE_WEIGHT_CHANGED = 'g_project_management_issue_weight_changed' + ISSUE_ADDED_TO_EPIC = 'g_project_management_issue_added_to_epic' + ISSUE_REMOVED_FROM_EPIC = 'g_project_management_issue_removed_from_epic' + ISSUE_CHANGED_EPIC = 'g_project_management_issue_changed_epic' class_methods do def track_issue_health_status_changed_action(author:, time: Time.zone.now) track_unique_action(ISSUE_HEALTH_STATUS_CHANGED, author, time) end + + def track_issue_iteration_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_ITERATION_CHANGED, author, time) + end + + def track_issue_weight_changed_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_WEIGHT_CHANGED, author, time) + end + + def track_issue_added_to_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_ADDED_TO_EPIC, author, time) + end + + def track_issue_removed_from_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_REMOVED_FROM_EPIC, author, time) + end + + def track_issue_changed_epic_action(author:, time: Time.zone.now) + track_unique_action(ISSUE_CHANGED_EPIC, author, time) + end end end end diff --git a/ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb b/ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb index 9ae8e4dfe608e4ae0bc620bda1828fa89504470c..75e097687377b6549dbec519c5b59b1fb2dc344c 100644 --- a/ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb +++ b/ee/spec/lib/ee/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb @@ -17,4 +17,54 @@ def track_action(params) end end end + + context 'for Issue iteration changed actions' do + it_behaves_like 'a tracked issue edit event' do + let(:action) { described_class::ISSUE_ITERATION_CHANGED } + + def track_action(params) + described_class.track_issue_iteration_changed_action(**params) + end + end + end + + context 'for Issue weight changed actions' do + it_behaves_like 'a tracked issue edit event' do + let(:action) { described_class::ISSUE_WEIGHT_CHANGED } + + def track_action(params) + described_class.track_issue_weight_changed_action(**params) + end + end + end + + context 'for Issue added to epic actions' do + it_behaves_like 'a tracked issue edit event' do + let(:action) { described_class::ISSUE_ADDED_TO_EPIC} + + def track_action(params) + described_class.track_issue_added_to_epic_action(**params) + end + end + end + + context 'for Issue removed from epic actions' do + it_behaves_like 'a tracked issue edit event' do + let(:action) { described_class::ISSUE_REMOVED_FROM_EPIC} + + def track_action(params) + described_class.track_issue_removed_from_epic_action(**params) + end + end + end + + context 'for Issue changed epic actions' do + it_behaves_like 'a tracked issue edit event' do + let(:action) { described_class::ISSUE_CHANGED_EPIC} + + def track_action(params) + described_class.track_issue_changed_epic_action(**params) + end + end + end end diff --git a/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb b/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb index 7d019dc51303b5441f85143e0a99618c985f0eb6..da013a0677731c39127f739ff2a6d038a78e45ae 100644 --- a/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb +++ b/lib/gitlab/usage_data_counters/issue_activity_unique_counter.rb @@ -9,14 +9,12 @@ module IssueActivityUniqueCounter ISSUE_CREATED = 'g_project_management_issue_created' ISSUE_CLOSED = 'g_project_management_issue_closed' ISSUE_DESCRIPTION_CHANGED = 'g_project_management_issue_description_changed' - ISSUE_ITERATION_CHANGED = 'g_project_management_issue_iteration_changed' ISSUE_LABEL_CHANGED = 'g_project_management_issue_label_changed' ISSUE_MADE_CONFIDENTIAL = 'g_project_management_issue_made_confidential' ISSUE_MADE_VISIBLE = 'g_project_management_issue_made_visible' ISSUE_MILESTONE_CHANGED = 'g_project_management_issue_milestone_changed' ISSUE_REOPENED = 'g_project_management_issue_reopened' ISSUE_TITLE_CHANGED = 'g_project_management_issue_title_changed' - ISSUE_WEIGHT_CHANGED = 'g_project_management_issue_weight_changed' ISSUE_CROSS_REFERENCED = 'g_project_management_issue_cross_referenced' ISSUE_MOVED = 'g_project_management_issue_moved' ISSUE_RELATED = 'g_project_management_issue_related' @@ -24,9 +22,6 @@ module IssueActivityUniqueCounter ISSUE_MARKED_AS_DUPLICATE = 'g_project_management_issue_marked_as_duplicate' ISSUE_LOCKED = 'g_project_management_issue_locked' ISSUE_UNLOCKED = 'g_project_management_issue_unlocked' - ISSUE_ADDED_TO_EPIC = 'g_project_management_issue_added_to_epic' - ISSUE_REMOVED_FROM_EPIC = 'g_project_management_issue_removed_from_epic' - ISSUE_CHANGED_EPIC = 'g_project_management_issue_changed_epic' ISSUE_DESIGNS_ADDED = 'g_project_management_issue_designs_added' ISSUE_DESIGNS_MODIFIED = 'g_project_management_issue_designs_modified' ISSUE_DESIGNS_REMOVED = 'g_project_management_issue_designs_removed' @@ -78,14 +73,6 @@ def track_issue_milestone_changed_action(author:, time: Time.zone.now) track_unique_action(ISSUE_MILESTONE_CHANGED, author, time) end - def track_issue_iteration_changed_action(author:, time: Time.zone.now) - track_unique_action(ISSUE_ITERATION_CHANGED, author, time) - end - - def track_issue_weight_changed_action(author:, time: Time.zone.now) - track_unique_action(ISSUE_WEIGHT_CHANGED, author, time) - end - def track_issue_cross_referenced_action(author:, time: Time.zone.now) track_unique_action(ISSUE_CROSS_REFERENCED, author, time) end @@ -114,18 +101,6 @@ def track_issue_unlocked_action(author:, time: Time.zone.now) track_unique_action(ISSUE_UNLOCKED, author, time) end - def track_issue_added_to_epic_action(author:, time: Time.zone.now) - track_unique_action(ISSUE_ADDED_TO_EPIC, author, time) - end - - def track_issue_removed_from_epic_action(author:, time: Time.zone.now) - track_unique_action(ISSUE_REMOVED_FROM_EPIC, author, time) - end - - def track_issue_changed_epic_action(author:, time: Time.zone.now) - track_unique_action(ISSUE_CHANGED_EPIC, author, time) - end - def track_issue_designs_added_action(author:, time: Time.zone.now) track_unique_action(ISSUE_DESIGNS_ADDED, author, time) end diff --git a/spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb index c86b3a01d1e5f0f152fc9628fae3de54de562d28..803eff05efe071ebe3c0ce050d350e4c2aef687f 100644 --- a/spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb +++ b/spec/lib/gitlab/usage_data_counters/issue_activity_unique_counter_spec.rb @@ -168,36 +168,6 @@ def track_action(params) end end - context 'for Issue added to epic actions' do - it_behaves_like 'a tracked issue edit event' do - let(:action) { described_class::ISSUE_ADDED_TO_EPIC} - - def track_action(params) - described_class.track_issue_added_to_epic_action(**params) - end - end - end - - context 'for Issue removed from epic actions' do - it_behaves_like 'a tracked issue edit event' do - let(:action) { described_class::ISSUE_REMOVED_FROM_EPIC} - - def track_action(params) - described_class.track_issue_removed_from_epic_action(**params) - end - end - end - - context 'for Issue changed epic actions' do - it_behaves_like 'a tracked issue edit event' do - let(:action) { described_class::ISSUE_CHANGED_EPIC} - - def track_action(params) - described_class.track_issue_changed_epic_action(**params) - end - end - end - context 'for Issue designs added actions' do it_behaves_like 'a tracked issue edit event' do let(:action) { described_class::ISSUE_DESIGNS_ADDED }