diff options
Diffstat (limited to 'app/controllers/projects/merge_requests/diffs_controller.rb')
-rw-r--r-- | app/controllers/projects/merge_requests/diffs_controller.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/app/controllers/projects/merge_requests/diffs_controller.rb b/app/controllers/projects/merge_requests/diffs_controller.rb index da19ddf6105..9180b3f6b62 100644 --- a/app/controllers/projects/merge_requests/diffs_controller.rb +++ b/app/controllers/projects/merge_requests/diffs_controller.rb @@ -11,6 +11,8 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic around_action :allow_gitaly_ref_name_caching + after_action :track_viewed_diffs_events, only: [:diffs_batch] + def show render_diffs end @@ -163,7 +165,7 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic end def render_merge_ref_head_diff? - Gitlab::Utils.to_boolean(params[:diff_head]) && @merge_request.diffable_merge_ref? + Gitlab::Utils.to_boolean(params[:diff_head]) && @merge_request.diffable_merge_ref? && @start_sha.nil? end def note_positions @@ -188,4 +190,16 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic Discussions::CaptureDiffNotePositionsService.new(@merge_request).execute end + + def track_viewed_diffs_events + return if request.headers['DNT'] == '1' + + Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter + .track_mr_diffs_action(merge_request: @merge_request) + + return unless current_user&.view_diffs_file_by_file + + Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter + .track_mr_diffs_single_file_action(merge_request: @merge_request, user: current_user) + end end |