diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2019-09-05 13:40:45 +0200 |
---|---|---|
committer | Francisco Javier López <fjlopez@gitlab.com> | 2019-09-10 12:56:32 +0200 |
commit | d1ba86645164c7b06eb558bd8a0c78d6cf6a8de6 (patch) | |
tree | 26ec9b7e500fb378ad5797db224a501253ab81e8 /app/services/merge_requests | |
parent | 86a3d82298ea9137c467129d1c828b92d7392ecd (diff) | |
download | gitlab-ce-d1ba86645164c7b06eb558bd8a0c78d6cf6a8de6.tar.gz |
Avoid setting merge request target branch when source if default branchfj-62807-not-prefill-target-branch
In case the source and the target project are the same, the
source branch is the default branch, and the target branch
is not present, we will avoid prefilling the target branch
with the repository default branch. Letting the user decide.
Diffstat (limited to 'app/services/merge_requests')
-rw-r--r-- | app/services/merge_requests/build_service.rb | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb index b28f80939ae..a1937d24294 100644 --- a/app/services/merge_requests/build_service.rb +++ b/app/services/merge_requests/build_service.rb @@ -21,7 +21,8 @@ module MergeRequests merge_request.assign_attributes(params.to_h.compact) merge_request.compare_commits = [] - merge_request.target_branch = find_target_branch + set_merge_request_target_branch + merge_request.can_be_created = projects_and_branches_valid? # compare branches only if branches are valid, otherwise @@ -81,8 +82,12 @@ module MergeRequests project_from_params end - def find_target_branch - target_branch || target_project.default_branch + def set_merge_request_target_branch + if source_branch_default? && !target_branch_specified? + merge_request.target_branch = nil + else + merge_request.target_branch ||= target_project.default_branch + end end def source_branch_specified? @@ -137,7 +142,15 @@ module MergeRequests end def same_source_and_target? - source_project == target_project && target_branch == source_branch + same_source_and_target_project? && target_branch == source_branch + end + + def source_branch_default? + same_source_and_target_project? && source_branch == target_project.default_branch + end + + def same_source_and_target_project? + source_project == target_project end def source_branch_exists? |