Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request_diff.rb')
-rw-r--r--app/models/merge_request_diff.rb26
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