diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2019-06-07 10:13:07 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2019-06-07 10:13:07 +0000 |
commit | 96e2ff69acb31028865b4582758bf1dab51c4332 (patch) | |
tree | bf939c8879ff4ae442e911ecbcb67819fd8a822e | |
parent | 4b086b74509500998bdc28a82871aa2c9003a194 (diff) | |
parent | 9994a5c12d6d68ffbfbd70fe210b53422dd78f4a (diff) | |
download | gitlab-ce-96e2ff69acb31028865b4582758bf1dab51c4332.tar.gz |
Merge branch '58297-remove-extraneous-gitaly-calls-from-md-rendering' into 'master'
Remove extraneous DiffNote#supports_suggestion? calls
See merge request gitlab-org/gitlab-ce!29027
-rw-r--r-- | app/models/diff_note.rb | 2 | ||||
-rw-r--r-- | app/services/preview_markdown_service.rb | 4 | ||||
-rw-r--r-- | changelogs/unreleased/58297-remove-extraneous-gitaly-calls-from-md-rendering.yml | 5 | ||||
-rw-r--r-- | lib/gitlab/diff/suggestions_parser.rb | 6 | ||||
-rw-r--r-- | spec/services/preview_markdown_service_spec.rb | 4 | ||||
-rw-r--r-- | spec/services/suggestions/create_service_spec.rb | 2 |
6 files changed, 17 insertions, 6 deletions
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb index 8221b7de2b6..f75c32633b1 100644 --- a/app/models/diff_note.rb +++ b/app/models/diff_note.rb @@ -90,7 +90,7 @@ class DiffNote < Note end def banzai_render_context(field) - super.merge(project: project, suggestions_filter_enabled: supports_suggestion?) + super.merge(suggestions_filter_enabled: true) end private diff --git a/app/services/preview_markdown_service.rb b/app/services/preview_markdown_service.rb index 7386530f45f..2b4c4ae68e2 100644 --- a/app/services/preview_markdown_service.rb +++ b/app/services/preview_markdown_service.rb @@ -38,7 +38,9 @@ class PreviewMarkdownService < BaseService head_sha: params[:head_sha], start_sha: params[:start_sha]) - Gitlab::Diff::SuggestionsParser.parse(text, position: position, project: project) + Gitlab::Diff::SuggestionsParser.parse(text, position: position, + project: project, + supports_suggestion: params[:preview_suggestions]) end def preview_sugestions? diff --git a/changelogs/unreleased/58297-remove-extraneous-gitaly-calls-from-md-rendering.yml b/changelogs/unreleased/58297-remove-extraneous-gitaly-calls-from-md-rendering.yml new file mode 100644 index 00000000000..25cc973159f --- /dev/null +++ b/changelogs/unreleased/58297-remove-extraneous-gitaly-calls-from-md-rendering.yml @@ -0,0 +1,5 @@ +--- +title: Reduce Gitaly calls to improve performance when rendering suggestions +merge_request: 29027 +author: +type: performance diff --git a/lib/gitlab/diff/suggestions_parser.rb b/lib/gitlab/diff/suggestions_parser.rb index c8c03d5d001..6e17ffaf6ff 100644 --- a/lib/gitlab/diff/suggestions_parser.rb +++ b/lib/gitlab/diff/suggestions_parser.rb @@ -10,10 +10,12 @@ module Gitlab # Returns an array of Gitlab::Diff::Suggestion which represents each # suggestion in the given text. # - def parse(text, position:, project:) + def parse(text, position:, project:, supports_suggestion: true) return [] unless position.complete? - html = Banzai.render(text, project: nil, no_original_data: true) + html = Banzai.render(text, project: nil, + no_original_data: true, + suggestions_filter_enabled: supports_suggestion) doc = Nokogiri::HTML(html) suggestion_nodes = doc.search('pre.suggestion') diff --git a/spec/services/preview_markdown_service_spec.rb b/spec/services/preview_markdown_service_spec.rb index f7261cd7125..d25e9958831 100644 --- a/spec/services/preview_markdown_service_spec.rb +++ b/spec/services/preview_markdown_service_spec.rb @@ -56,7 +56,9 @@ describe PreviewMarkdownService do expect(Gitlab::Diff::SuggestionsParser) .to receive(:parse) - .with(text, position: position, project: merge_request.project) + .with(text, position: position, + project: merge_request.project, + supports_suggestion: true) .and_call_original result = service.execute diff --git a/spec/services/suggestions/create_service_spec.rb b/spec/services/suggestions/create_service_spec.rb index ccd44e615a8..d95f9e3349b 100644 --- a/spec/services/suggestions/create_service_spec.rb +++ b/spec/services/suggestions/create_service_spec.rb @@ -96,7 +96,7 @@ describe Suggestions::CreateService do it 'creates no suggestion when diff file is not found' do expect_next_instance_of(DiffNote) do |diff_note| - expect(diff_note).to receive(:latest_diff_file).twice { nil } + expect(diff_note).to receive(:latest_diff_file).once { nil } end expect { subject.execute }.not_to change(Suggestion, :count) |