diff options
Diffstat (limited to 'app/models/merge_request_diff.rb')
-rw-r--r-- | app/models/merge_request_diff.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/app/models/merge_request_diff.rb b/app/models/merge_request_diff.rb index 0b183131a47..47102418152 100644 --- a/app/models/merge_request_diff.rb +++ b/app/models/merge_request_diff.rb @@ -196,6 +196,7 @@ class MergeRequestDiff < ApplicationRecord # It allows you to override variables like head_commit_sha before getting diff. after_create :save_git_content, unless: :importing? after_create_commit :set_as_latest_diff, unless: :importing? + after_create_commit :trigger_diff_generated_subscription, unless: :importing? after_save :update_external_diff_store after_save :set_count_columns @@ -258,6 +259,12 @@ class MergeRequestDiff < ApplicationRecord .update_all(latest_merge_request_diff_id: self.id) end + def trigger_diff_generated_subscription + return unless Feature.enabled?(:merge_request_diff_generated_subscription, merge_request.project) + + GraphqlTriggers.merge_request_diff_generated(merge_request) + end + def ensure_commit_shas self.start_commit_sha ||= merge_request.target_branch_sha @@ -439,6 +446,8 @@ class MergeRequestDiff < ApplicationRecord ) end + diff_options[:generated_files] = comparison.generated_files if diff_options[:collapse_generated] + Gitlab::Metrics.measure(:diffs_comparison) do comparison.diffs(diff_options) end @@ -452,18 +461,25 @@ class MergeRequestDiff < ApplicationRecord fetching_repository_diffs({}) do |comparison| reorder_diff_files! + collapse_generated = Feature.enabled?(:collapse_generated_diff_files, project) + diff_options = { collapse_generated: collapse_generated } + collection = Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff.new( self, page, - per_page + per_page, + diff_options ) if comparison + diff_options[:generated_files] = comparison.generated_files if collapse_generated + comparison.diffs( - paths: collection.diff_paths, - page: collection.current_page, - per_page: collection.limit_value, - count: collection.total_count + diff_options.merge( + paths: collection.diff_paths, + page: collection.current_page, + per_page: collection.limit_value, + count: collection.total_count) ) else collection |