diff options
author | Rémy Coutable <remy@rymai.me> | 2016-09-30 16:07:29 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-09-30 16:07:29 +0000 |
commit | 9a79c9e98079ab21428289af9ec5dd3f0583c375 (patch) | |
tree | b456b8987a05747d9f1783e74bdfb43faacfae69 /app | |
parent | e5c7c644d4d73623cf2993df91f99bbaab489f18 (diff) | |
parent | 02db2dc5f34e51c507ebcda876184fca1b5a9c1e (diff) | |
download | gitlab-ce-9a79c9e98079ab21428289af9ec5dd3f0583c375.tar.gz |
Merge branch 'close-merge-request-if-open-without-source-project' into 'master'
Before rendering `show` template we close open merge request without source project. This way there is no need to render `invalid` template. I think that it's better solution than !6383
See merge request !6478
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/merge_requests_controller.rb | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 020a21ddf93..68bb4232f5b 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -18,6 +18,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController before_action :define_commit_vars, only: [:diffs] before_action :define_diff_comment_vars, only: [:diffs] before_action :ensure_ref_fetched, only: [:show, :diffs, :commits, :builds, :conflicts, :pipelines] + before_action :close_merge_request_without_source_project, only: [:show, :diffs, :commits, :builds, :pipelines] # Allow read any merge_request before_action :authorize_read_merge_request! @@ -416,10 +417,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def validates_merge_request - # If source project was removed and merge request for some reason - # wasn't close (Ex. mr from fork to origin) - return invalid_mr if !@merge_request.source_project && @merge_request.open? - # Show git not found page # if there is no saved commits between source & target branch if @merge_request.commits.blank? @@ -494,7 +491,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def invalid_mr - # Render special view for MR with removed source or target branch + # Render special view for MR with removed target branch render 'invalid' end @@ -536,4 +533,10 @@ class Projects::MergeRequestsController < Projects::ApplicationController @diff_notes_disabled = !@merge_request_diff.latest? @diffs = @merge_request_diff.diffs(diff_options) end + + def close_merge_request_without_source_project + if !@merge_request.source_project && @merge_request.open? + @merge_request.close + end + end end |