From e6ad5f5aebd4937bbac7a975c1b32db415ca20bd Mon Sep 17 00:00:00 2001 From: Jonas Larsen <jlarsen@gitlab.com> Date: Wed, 5 Mar 2025 13:38:05 +0100 Subject: [PATCH] Add feature flag --- .../event_forward/event_forward_controller.rb | 8 ++++++-- .../wip/collect_product_usage_events.yml | 9 +++++++++ .../event_forward_controller_spec.rb | 15 +++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 config/feature_flags/wip/collect_product_usage_events.yml diff --git a/app/controllers/event_forward/event_forward_controller.rb b/app/controllers/event_forward/event_forward_controller.rb index 886a84048de1..26a166fc33b2 100644 --- a/app/controllers/event_forward/event_forward_controller.rb +++ b/app/controllers/event_forward/event_forward_controller.rb @@ -3,9 +3,13 @@ module EventForward class EventForwardController < BaseActionController def forward - process_events + if ::Feature.enabled?('collect_product_usage_events', :instance) + process_events - head :ok + head :ok + else + head :not_found + end end private diff --git a/config/feature_flags/wip/collect_product_usage_events.yml b/config/feature_flags/wip/collect_product_usage_events.yml new file mode 100644 index 000000000000..2aef56e479d7 --- /dev/null +++ b/config/feature_flags/wip/collect_product_usage_events.yml @@ -0,0 +1,9 @@ +--- +name: collect_product_usage_events +feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/510317 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/182916 +rollout_issue_url: +milestone: '17.10' +group: group::analytics instrumentation +type: wip +default_enabled: false diff --git a/spec/requests/event_forward/event_forward_controller_spec.rb b/spec/requests/event_forward/event_forward_controller_spec.rb index 203c2a885473..b00cf1c75e11 100644 --- a/spec/requests/event_forward/event_forward_controller_spec.rb +++ b/spec/requests/event_forward/event_forward_controller_spec.rb @@ -19,6 +19,7 @@ allow(tracker).to receive(:emit_event_payload) allow(EventForward::Logger).to receive(:build).and_return(logger) allow(logger).to receive(:info) + stub_feature_flags(collect_product_usage_events: true) end describe 'POST #forward' do @@ -44,5 +45,19 @@ expect(response).to have_gitlab_http_status(:ok) expect(response.body).to be_empty end + + context 'when feature flag is disabled' do + before do + stub_feature_flags(collect_product_usage_events: false) + end + + it 'returns 404 and do not call tracker' do + expect(tracker).not_to receive(:emit_event_payload) + + request + + expect(response).to have_gitlab_http_status(:not_found) + end + end end end -- GitLab