summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2017-06-23 16:10:15 +0100
committerSean McGivern <sean@gitlab.com>2017-06-23 16:10:15 +0100
commit6a345744b42a6f57dfba5a08c402542a21de2b69 (patch)
tree6e8e307d8828078547455579073702174da2d4bc
parentd4384dc154cb1e44c7b0a5cd802d48629f585fdb (diff)
downloadgitlab-ce-skip-pipelines-load-for-mr-diffs.tar.gz
Skip loading pipelines when loading async MR diffsskip-pipelines-load-for-mr-diffs
Loading pipelines can be very expensive, and they aren't displayed in the partial rendered by diffs.json.
-rw-r--r--app/controllers/projects/merge_requests_controller.rb12
-rw-r--r--changelogs/unreleased/skip-pipelines-load-for-mr-diffs.yml4
2 files changed, 12 insertions, 4 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 879ff6d393e..1dbd489a960 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -13,7 +13,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
:pipeline_status, :ci_environments_status, :toggle_subscription, :cancel_merge_when_pipeline_succeeds, :remove_wip, :resolve_conflicts, :assign_related_issues, :commit_change_content
]
before_action :validates_merge_request, only: [:show, :diffs, :commits, :pipelines]
- before_action :define_show_vars, only: [:diffs, :commits, :conflicts, :conflict_for_path, :builds, :pipelines]
+ before_action :define_show_vars, only: [:commits, :conflicts, :conflict_for_path, :builds, :pipelines]
before_action :ensure_ref_fetched, only: [:show, :diffs, :commits, :builds, :conflicts, :conflict_for_path, :pipelines]
before_action :close_merge_request_without_source_project, only: [:show, :diffs, :commits, :builds, :pipelines]
before_action :check_if_can_be_merged, only: :show
@@ -102,8 +102,12 @@ class Projects::MergeRequestsController < Projects::ApplicationController
apply_diff_view_cookie!
respond_to do |format|
- format.html { define_discussion_vars }
+ format.html do
+ define_show_vars
+ define_discussion_vars
+ end
format.json do
+ define_show_vars(define_pipelines: false)
define_diff_vars
define_diff_comment_vars
@@ -470,7 +474,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end
end
- def define_show_vars
+ def define_show_vars(define_pipelines: true)
@noteable = @merge_request
@commits_count = @merge_request.commits_count
@@ -480,7 +484,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end
labels
- define_pipelines_vars
+ define_pipelines_vars if define_pipelines
end
# Discussion tab data is rendered on html responses of actions
diff --git a/changelogs/unreleased/skip-pipelines-load-for-mr-diffs.yml b/changelogs/unreleased/skip-pipelines-load-for-mr-diffs.yml
new file mode 100644
index 00000000000..d036bc20bee
--- /dev/null
+++ b/changelogs/unreleased/skip-pipelines-load-for-mr-diffs.yml
@@ -0,0 +1,4 @@
+---
+title: Skip loading pipelines when loading async merge request diffs
+merge_request:
+author: