summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2017-05-06 16:17:41 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2017-05-06 16:41:29 -0300
commit50ac4e6d6faf8b4ab17cdcd1ad31e2c7b642f09a (patch)
treeac06979b66bef9e1a2e064e542b9ec2c5d534006
parent850c8c3489aaba0324a128c42e724f722739bc54 (diff)
downloadgitlab-ce-50ac4e6d6faf8b4ab17cdcd1ad31e2c7b642f09a.tar.gz
EE backport
-rwxr-xr-xapp/controllers/projects/merge_requests_controller.rb11
-rw-r--r--app/presenters/merge_request_presenter.rb4
-rw-r--r--app/serializers/merge_request_entity.rb7
-rw-r--r--spec/presenters/merge_request_presenter_spec.rb11
-rw-r--r--spec/serializers/merge_request_entity_spec.rb21
5 files changed, 22 insertions, 32 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index b41dbb6c1e6..44c7eb86855 100755
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -14,7 +14,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
]
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_widget_vars, only: [:merge, :cancel_merge_when_pipeline_succeeds, :merge_check]
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]
@@ -335,7 +334,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
status = merge!
- render json: { status: status }
+ if @merge_request.merge_error
+ render json: { status: status, merge_error: @merge_request.merge_error }
+ else
+ render json: { status: status }
+ end
end
def branch_from
@@ -495,10 +498,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@notes = prepare_notes_for_rendering(@discussions.flat_map(&:notes))
end
- def define_widget_vars
- @pipeline = @merge_request.head_pipeline
- end
-
def define_commit_vars
@commit = @merge_request.diff_head_commit
@base_commit = @merge_request.diff_base_commit || @merge_request.likely_diff_base_commit
diff --git a/app/presenters/merge_request_presenter.rb b/app/presenters/merge_request_presenter.rb
index 102727a8b22..255f63db5c2 100644
--- a/app/presenters/merge_request_presenter.rb
+++ b/app/presenters/merge_request_presenter.rb
@@ -36,9 +36,7 @@ class MergeRequestPresenter < Gitlab::View::Presenter::Delegated
end
def remove_wip_path
- if can?(current_user, :update_merge_request, merge_request.project) &&
- project.merge_requests_enabled?
-
+ if can?(current_user, :update_merge_request, merge_request.project)
remove_wip_namespace_project_merge_request_path(project.namespace, project, merge_request)
end
end
diff --git a/app/serializers/merge_request_entity.rb b/app/serializers/merge_request_entity.rb
index 721e044d31d..a2542c54f7a 100644
--- a/app/serializers/merge_request_entity.rb
+++ b/app/serializers/merge_request_entity.rb
@@ -24,9 +24,8 @@ class MergeRequestEntity < IssuableEntity
expose :merge_user, using: UserEntity
# Diff sha's
- expose :diff_head_sha
- expose :diff_head_commit_short_id do |merge_request|
- merge_request.diff_head_commit.try(:short_id)
+ expose :diff_head_sha do |merge_request|
+ merge_request.diff_head_sha if merge_request.diff_head_commit
end
expose :merge_commit_sha
@@ -38,7 +37,7 @@ class MergeRequestEntity < IssuableEntity
expose :source_branch_exists?, as: :source_branch_exists
expose :mergeable_discussions_state?, as: :mergeable_discussions_state
expose :branch_missing?, as: :branch_missing
- expose :has_no_commits?, as: :has_no_commits
+ expose :commits_count
expose :cannot_be_merged?, as: :has_conflicts
expose :can_be_merged?, as: :can_be_merged
diff --git a/spec/presenters/merge_request_presenter_spec.rb b/spec/presenters/merge_request_presenter_spec.rb
index 2c571ffa2bd..e599ddaf943 100644
--- a/spec/presenters/merge_request_presenter_spec.rb
+++ b/spec/presenters/merge_request_presenter_spec.rb
@@ -302,17 +302,6 @@ describe MergeRequestPresenter do
context 'when has no permission' do
it 'returns nil' do
- allow(project).to receive(:merge_requests_enabled?) { true }
-
- is_expected.to be_nil
- end
- end
-
- context 'when merge requests disabled' do
- it 'returns nil' do
- allow(project).to receive(:merge_requests_enabled?) { false }
- project.team << [user, :master]
-
is_expected.to be_nil
end
end
diff --git a/spec/serializers/merge_request_entity_spec.rb b/spec/serializers/merge_request_entity_spec.rb
index 5b1f6e0b135..bb6e83ae4bd 100644
--- a/spec/serializers/merge_request_entity_spec.rb
+++ b/spec/serializers/merge_request_entity_spec.rb
@@ -46,7 +46,8 @@ describe MergeRequestEntity do
:conflict_resolution_path,
:cancel_merge_when_pipeline_succeeds_path,
:create_issue_to_resolve_discussions_path,
- :source_branch_path, :target_branch_commits_path)
+ :source_branch_path, :target_branch_commits_path,
+ :commits_count)
end
it 'has email_patches_path' do
@@ -64,20 +65,24 @@ describe MergeRequestEntity do
.to eq(resource.merge_commit_message(include_description: true))
end
- describe 'diff_head_commit_short_id' do
- context 'when no diff head commit' do
- let(:project) { create :empty_project }
+ describe 'diff_head_sha' do
+ before do
+ allow(resource).to receive(:diff_head_sha) { 'sha' }
+ end
+ context 'when no diff head commit' do
it 'returns nil' do
- expect(subject[:diff_head_commit_short_id]).to be_nil
+ allow(resource).to receive(:diff_head_commit) { nil }
+
+ expect(subject[:diff_head_sha]).to be_nil
end
end
context 'when diff head commit present' do
- let(:project) { create :project }
-
it 'returns diff head commit short id' do
- expect(subject[:diff_head_commit_short_id]).to eq(resource.diff_head_commit.short_id)
+ allow(resource).to receive(:diff_head_commit) { double }
+
+ expect(subject[:diff_head_sha]).to eq('sha')
end
end
end