summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorJan Provaznik <jprovaznik@gitlab.com>2017-08-24 08:20:36 +0200
committerJan Provaznik <jan.provaznik@gmail.com>2017-12-05 08:41:58 +0100
commit8cce70730c2fb9c705e1f1177f6d1effc665b3c7 (patch)
tree658e5a0f245159944f7aefc8155627c29b918d1d /app/services
parenta1cd9be42910c89192e82659c09bf0242c8e5dae (diff)
downloadgitlab-ce-8cce70730c2fb9c705e1f1177f6d1effc665b3c7.tar.gz
Create merge request from email
* new merge request can be created by sending an email to the specific email address (similar to creating issues by email) * for the first iteration, source branch must be specified in the mail subject, other merge request parameters can not be set yet * user should enable "Receive notifications about your own activity" in user settings to receive a notification about created merge request Part of #32878
Diffstat (limited to 'app/services')
-rw-r--r--app/services/merge_requests/build_service.rb8
-rw-r--r--app/services/merge_requests/create_service.rb6
2 files changed, 12 insertions, 2 deletions
diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb
index c2fb01466df..9622a5c5462 100644
--- a/app/services/merge_requests/build_service.rb
+++ b/app/services/merge_requests/build_service.rb
@@ -10,8 +10,12 @@ module MergeRequests
merge_request.target_branch = find_target_branch
merge_request.can_be_created = branches_valid?
- compare_branches if branches_present?
- assign_title_and_description if merge_request.can_be_created
+ # compare branches only if branches are valid, otherwise
+ # compare_branches may raise an error
+ if merge_request.can_be_created
+ compare_branches
+ assign_title_and_description
+ end
merge_request
end
diff --git a/app/services/merge_requests/create_service.rb b/app/services/merge_requests/create_service.rb
index 820709583fa..49cf534dc0d 100644
--- a/app/services/merge_requests/create_service.rb
+++ b/app/services/merge_requests/create_service.rb
@@ -35,6 +35,12 @@ module MergeRequests
super
end
+ # expose issuable create method so it can be called from email
+ # handler CreateMergeRequestHandler
+ def create(merge_request)
+ super
+ end
+
private
def update_merge_requests_head_pipeline(merge_request)