summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2017-05-18 17:14:48 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2017-05-18 19:23:05 -0300
commite8841e8dbc6a14af3ce98b7033136249dd9de265 (patch)
tree3ac55602021722e13a185110cc268ab46e60e053
parente4eec191565a053f687911d80865ad43241453f8 (diff)
downloadgitlab-ce-e8841e8dbc6a14af3ce98b7033136249dd9de265.tar.gz
Drop merge_check endpoint and use only MR show instead
-rw-r--r--app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js2
-rw-r--r--app/controllers/projects/merge_requests_controller.rb18
-rw-r--r--spec/controllers/projects/merge_requests_controller_spec.rb9
3 files changed, 20 insertions, 9 deletions
diff --git a/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js b/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js
index 42493be3372..79c3d335679 100644
--- a/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js
+++ b/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js
@@ -6,7 +6,7 @@ Vue.use(VueResource);
export default class MRWidgetService {
constructor(endpoints) {
this.mergeResource = Vue.resource(endpoints.mergePath);
- this.mergeCheckResource = Vue.resource(endpoints.mergeCheckPath);
+ this.mergeCheckResource = Vue.resource(endpoints.statusPath);
this.cancelAutoMergeResource = Vue.resource(endpoints.cancelAutoMergePath);
this.removeWIPResource = Vue.resource(endpoints.removeWIPPath);
this.removeSourceBranchResource = Vue.resource(endpoints.sourceBranchPath);
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index b99ccd453b8..0352065998b 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -9,14 +9,15 @@ class Projects::MergeRequestsController < Projects::ApplicationController
before_action :module_enabled
before_action :merge_request, only: [
- :edit, :update, :show, :diffs, :commits, :conflicts, :conflict_for_path, :pipelines, :merge, :merge_check,
+ :edit, :update, :show, :diffs, :commits, :conflicts, :conflict_for_path, :pipelines, :merge,
: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: [:show, :diffs, :commits, :conflicts, :conflict_for_path, :builds, :pipelines]
+ before_action :define_show_vars, only: [:diffs, :commits, :conflicts, :conflict_for_path, :builds, :pipelines]
before_action :define_commit_vars, only: [:diffs]
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
before_action :apply_diff_view_cookie!, only: [:new_diffs]
before_action :build_merge_request, only: [:new, :new_diffs]
@@ -75,9 +76,12 @@ class Projects::MergeRequestsController < Projects::ApplicationController
respond_to do |format|
format.html do
define_discussion_vars
+ define_show_vars
end
format.json do
+ Gitlab::PollingInterval.set_header(response, interval: 10_000)
+
render json: serializer.represent(@merge_request, basic: params[:basic])
end
@@ -309,12 +313,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
render json: serializer.represent(@merge_request)
end
- def merge_check
- @merge_request.check_if_can_be_merged
-
- render json: serializer.represent(@merge_request)
- end
-
def commit_change_content
render partial: 'projects/merge_requests/widget/commit_change_content', layout: false
end
@@ -640,6 +638,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController
private
+ def check_if_can_be_merged
+ @merge_request.check_if_can_be_merged
+ end
+
def merge!
# Disable the CI check if merge_when_pipeline_succeeds is enabled since we have
# to wait until CI completes to know
diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb
index 0b3492a8fed..7fe2f190790 100644
--- a/spec/controllers/projects/merge_requests_controller_spec.rb
+++ b/spec/controllers/projects/merge_requests_controller_spec.rb
@@ -119,6 +119,15 @@ describe Projects::MergeRequestsController do
expect(response).to match_response_schema('entities/merge_request')
end
end
+
+ context 'number of queries' do
+ it 'verifies number of queries' do
+ recorded = ActiveRecord::QueryRecorder.new { go(format: :json) }
+
+ expect(recorded.count).to be_within(1).of(94)
+ expect(recorded.cached_count).to eq(0)
+ end
+ end
end
describe "as diff" do