Commit fae3f466151ac8ee9f9e0e496669be8a9e649120
1 parent
539c70c7
Exists in
master
and in
4 other branches
Refactor merge api create
-Made the api method a little more readable -removed some missed extra newline's Change-Id: Ic38baafc813aaeda0a8b283f39916182c8ec37d5
Showing
3 changed files
with
16 additions
and
7 deletions
Show diff stats
lib/api/merge_requests.rb
| @@ -14,6 +14,14 @@ module API | @@ -14,6 +14,14 @@ module API | ||
| 14 | end | 14 | end |
| 15 | not_found! | 15 | not_found! |
| 16 | end | 16 | end |
| 17 | + | ||
| 18 | + def not_fork?(target_project_id, user_project) | ||
| 19 | + target_project_id.nil? || target_project_id == user_project.id.to_s | ||
| 20 | + end | ||
| 21 | + | ||
| 22 | + def target_matches_fork(target_project_id,user_project) | ||
| 23 | + user_project.forked? && user_project.forked_from_project.id.to_s == target_project_id | ||
| 24 | + end | ||
| 17 | end | 25 | end |
| 18 | 26 | ||
| 19 | # List merge requests | 27 | # List merge requests |
| @@ -69,13 +77,16 @@ module API | @@ -69,13 +77,16 @@ module API | ||
| 69 | merge_request.author = current_user | 77 | merge_request.author = current_user |
| 70 | merge_request.source_project = user_project | 78 | merge_request.source_project = user_project |
| 71 | target_project_id = attrs[:target_project_id] | 79 | target_project_id = attrs[:target_project_id] |
| 72 | - if !target_project_id.nil? && user_project.forked? && user_project.forked_from_project.id.to_s == target_project_id | ||
| 73 | - merge_request.target_project = Project.find_by_id(attrs[:target_project_id]) | ||
| 74 | - elsif target_project_id.nil? || target_project_id == user_project.id.to_s | 80 | + if not_fork?(target_project_id, user_project) |
| 75 | merge_request.target_project = user_project | 81 | merge_request.target_project = user_project |
| 76 | - elsif !target_project_id.nil? | ||
| 77 | - render_api_error!('(Bad Request) Specified target project that is not the source project, or the source fork of the project.', 400) | 82 | + else |
| 83 | + if target_matches_fork(target_project_id,user_project) | ||
| 84 | + merge_request.target_project = Project.find_by_id(attrs[:target_project_id]) | ||
| 85 | + else | ||
| 86 | + render_api_error!('(Bad Request) Specified target project that is not the source project, or the source fork of the project.', 400) | ||
| 87 | + end | ||
| 78 | end | 88 | end |
| 89 | + | ||
| 79 | if merge_request.save | 90 | if merge_request.save |
| 80 | merge_request.reload_code | 91 | merge_request.reload_code |
| 81 | present merge_request, with: Entities::MergeRequest | 92 | present merge_request, with: Entities::MergeRequest |
lib/gitlab/satellite/satellite.rb
| @@ -130,7 +130,6 @@ module Gitlab | @@ -130,7 +130,6 @@ module Gitlab | ||
| 130 | repo.git.fetch(default_options, :origin) | 130 | repo.git.fetch(default_options, :origin) |
| 131 | end | 131 | end |
| 132 | 132 | ||
| 133 | - | ||
| 134 | def default_options(options = {}) | 133 | def default_options(options = {}) |
| 135 | {raise: true, timeout: true}.merge(options) | 134 | {raise: true, timeout: true}.merge(options) |
| 136 | end | 135 | end |
spec/models/merge_request_spec.rb
| @@ -83,7 +83,6 @@ describe MergeRequest do | @@ -83,7 +83,6 @@ describe MergeRequest do | ||
| 83 | end | 83 | end |
| 84 | end | 84 | end |
| 85 | 85 | ||
| 86 | - | ||
| 87 | describe '#allow_source_branch_removal?' do | 86 | describe '#allow_source_branch_removal?' do |
| 88 | it 'should not allow removal when mr is a fork' do | 87 | it 'should not allow removal when mr is a fork' do |
| 89 | 88 |