diff options
Diffstat (limited to 'app/services/merge_requests/build_service.rb')
-rw-r--r-- | app/services/merge_requests/build_service.rb | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb index 12c901aa1a1..e4d3c91d13e 100644 --- a/app/services/merge_requests/build_service.rb +++ b/app/services/merge_requests/build_service.rb @@ -58,6 +58,7 @@ module MergeRequests :compare_commits, :wip_title, :description, + :first_multiline_commit, :errors, to: :merge_request @@ -196,7 +197,8 @@ module MergeRequests # interpreted as the user wants to close that issue on this project. # # For example: - # - Issue 112 exists, title: Emoji don't show up in commit title + # - Issue 112 exists + # - title: Emoji don't show up in commit title # - Source branch is: 112-fix-mep-mep # # Will lead to: @@ -205,7 +207,7 @@ module MergeRequests # more than one commit in the MR # def assign_title_and_description - assign_title_and_description_from_single_commit + assign_title_and_description_from_commits merge_request.title ||= title_from_issue if target_project.issues_enabled? || target_project.external_issue_tracker merge_request.title ||= source_branch.titleize.humanize merge_request.title = wip_title if compare_commits.empty? @@ -240,12 +242,16 @@ module MergeRequests end end - def assign_title_and_description_from_single_commit + def assign_title_and_description_from_commits commits = compare_commits - return unless commits&.count == 1 + if commits&.count == 1 + commit = commits.first + else + commit = first_multiline_commit + return unless commit + end - commit = commits.first merge_request.title ||= commit.title merge_request.description ||= commit.description.try(:strip) end |