summaryrefslogtreecommitdiff
path: root/app/controllers/concerns
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-11-17 18:53:56 +0100
committerDouwe Maan <douwe@gitlab.com>2015-11-17 18:53:56 +0100
commite945ec02804bb28dbd228d8002a159c8da0fcc38 (patch)
tree72600162a61e7990d6c62ce5af90f5e649cc1e86 /app/controllers/concerns
parent0b540a0fadf172277639910023fcf8b713ad35aa (diff)
downloadgitlab-ce-e945ec02804bb28dbd228d8002a159c8da0fcc38.tar.gz
Add "Start a new merge request" option to every commit form
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r--app/controllers/concerns/creates_merge_request_for_commit.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/controllers/concerns/creates_merge_request_for_commit.rb b/app/controllers/concerns/creates_merge_request_for_commit.rb
new file mode 100644
index 00000000000..c7527822158
--- /dev/null
+++ b/app/controllers/concerns/creates_merge_request_for_commit.rb
@@ -0,0 +1,28 @@
+module CreatesMergeRequestForCommit
+ extend ActiveSupport::Concern
+
+ def new_merge_request_path
+ if @project.forked?
+ target_project = @project.forked_from_project || @project
+ target_branch = target_project.repository.root_ref
+ else
+ target_project = @project
+ target_branch = @ref
+ end
+
+ new_namespace_project_merge_request_path(
+ @project.namespace,
+ @project,
+ merge_request: {
+ source_project_id: @project.id,
+ target_project_id: target_project.id,
+ source_branch: @new_branch,
+ target_branch: target_branch
+ }
+ )
+ end
+
+ def create_merge_request?
+ params[:create_merge_request] && @new_branch != @ref
+ end
+end