summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhaseeb <haseebeqx@yahoo.com>2017-08-17 20:14:37 +0530
committerhaseeb <haseebeqx@yahoo.com>2017-08-17 20:14:37 +0530
commitd368b2d20230c986dbfc813312bbf25970208aaf (patch)
tree509b83c6a940d91d73c3111afbfd96d289849ada
parent59d7ffad06828435e31c7ea09c97c4b79909ef77 (diff)
downloadgitlab-ce-d368b2d20230c986dbfc813312bbf25970208aaf.tar.gz
moved merge parms to service
-rw-r--r--app/controllers/projects/issues_controller.rb12
-rw-r--r--app/services/merge_requests/create_from_issue_service.rb5
-rw-r--r--spec/services/merge_requests/create_from_issue_service_spec.rb33
3 files changed, 17 insertions, 33 deletions
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index 04c14806544..8893a514207 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -212,7 +212,7 @@ class Projects::IssuesController < Projects::ApplicationController
end
def create_merge_request
- result = ::MergeRequests::CreateFromIssueService.new(project, current_user, merge_request_params).execute
+ result = ::MergeRequests::CreateFromIssueService.new(project, current_user, issue_iid: issue.iid).execute
if result[:status] == :success
render json: MergeRequestCreateSerializer.new.represent(result[:merge_request])
@@ -287,14 +287,4 @@ class Projects::IssuesController < Projects::ApplicationController
redirect_to new_user_session_path, notice: notice
end
-
- private
-
- def merge_request_params
- {
- issue_iid: issue.iid,
- label_ids: issue.label_ids,
- milestone_id: issue.milestone_id
- }
- end
end
diff --git a/app/services/merge_requests/create_from_issue_service.rb b/app/services/merge_requests/create_from_issue_service.rb
index 738cedbaed7..6bc70d8175e 100644
--- a/app/services/merge_requests/create_from_issue_service.rb
+++ b/app/services/merge_requests/create_from_issue_service.rb
@@ -3,6 +3,8 @@ module MergeRequests
def execute
return error('Invalid issue iid') unless issue_iid.present? && issue.present?
+ params[:label_ids] = issue.label_ids if issue.label_ids.any?
+
result = CreateBranchService.new(project, current_user).execute(branch_name, ref)
return result if result[:status] == :error
@@ -43,7 +45,8 @@ module MergeRequests
{
source_project_id: project.id,
source_branch: branch_name,
- target_project_id: project.id
+ target_project_id: project.id,
+ milestone_id: issue.milestone_id
}
end
diff --git a/spec/services/merge_requests/create_from_issue_service_spec.rb b/spec/services/merge_requests/create_from_issue_service_spec.rb
index bdc53c7e64b..b3c0e6518ef 100644
--- a/spec/services/merge_requests/create_from_issue_service_spec.rb
+++ b/spec/services/merge_requests/create_from_issue_service_spec.rb
@@ -3,22 +3,11 @@ require 'spec_helper'
describe MergeRequests::CreateFromIssueService do
let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
- let(:issue) { create(:issue, project: project) }
- let(:milestone) { create(:milestone, project: project) }
- let(:labels) { create_pair(:label, project: project) }
-
+ let(:label_ids) { create_pair(:label, project: project).map(&:id) }
+ let(:milestone_id) { create(:milestone, project: project).id }
+ let(:issue) { create(:issue, project: project, milestone_id: milestone_id) }
+
subject(:service) { described_class.new(project, user, issue_iid: issue.iid) }
- subject(:service2) do
- described_class.new(
- project,
- user,
- {
- issue_iid: issue.iid,
- milestone_id: milestone.id,
- label_ids: labels.map(&:id)
- }
- )
- end
before do
project.add_developer(user)
@@ -38,16 +27,18 @@ describe MergeRequests::CreateFromIssueService do
described_class.new(project, user, issue_iid: -1).execute
end
- it "can inherit labels" do
- result = service2.execute
+ it "inherits labels" do
+ issue.assign_attributes(label_ids: label_ids)
- expect(result[:merge_request].label_ids).to eq(labels.map(&:id))
+ result = service.execute
+
+ expect(result[:merge_request].label_ids).to eq(label_ids)
end
- it "can inherit milestones" do
- result = service2.execute
+ it "inherits milestones" do
+ result = service.execute
- expect(result[:merge_request].milestone_id).to eq(milestone.id)
+ expect(result[:merge_request].milestone_id).to eq(milestone_id)
end
it 'delegates the branch creation to CreateBranchService' do