summaryrefslogtreecommitdiff
path: root/app/controllers/concerns/creates_merge_request_for_commit.rb
blob: c75278221585a95a18e591f63c1e7839727ace7a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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