diff --git a/app/controllers/event_forward/event_forward_controller.rb b/app/controllers/event_forward/event_forward_controller.rb index 886a84048de141828025ec7b5942cb8a62f3d6b1..26a166fc33b29687fe2186d487dd0b5dc374b5a0 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 0000000000000000000000000000000000000000..2aef56e479d7653487b3eac2216e9b226262979c --- /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 203c2a885473b9302dba1839d6048cf5f468fd4b..b00cf1c75e1153b6f2a46aef568661fa3227d3c1 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