Module: MergeRequestsHelper

Defined in:
app/helpers/merge_requests_helper.rb

Instance Method Summary collapse

Instance Method Details

#ci_build_details_path(merge_request) ⇒ Object


29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/helpers/merge_requests_helper.rb', line 29

def ci_build_details_path(merge_request)
  build_url = merge_request.source_project.ci_service.build_page(merge_request.last_commit.sha, merge_request.source_branch)
  return nil unless build_url

  parsed_url = URI.parse(build_url)

  unless parsed_url.userinfo.blank?
    parsed_url.userinfo = ''
  end

  parsed_url.to_s
end

#format_mr_branch_names(merge_request) ⇒ Object


83
84
85
86
87
88
89
90
91
92
93
94
# File 'app/helpers/merge_requests_helper.rb', line 83

def format_mr_branch_names(merge_request)
  source_path = merge_request.source_project_path
  target_path = merge_request.target_project_path
  source_branch = merge_request.source_branch
  target_branch = merge_request.target_branch

  if source_path == target_path
    [source_branch, target_branch]
  else
    ["#{source_path}:#{source_branch}", "#{target_path}:#{target_branch}"]
  end
end

#issues_sentence(issues) ⇒ Object


50
51
52
53
54
55
56
# File 'app/helpers/merge_requests_helper.rb', line 50

def issues_sentence(issues)
  # Sorting based on the `#123` or `group/project#123` reference will sort
  # local issues first.
  issues.map do |issue|
    issue.to_reference(@project)
  end.sort.to_sentence
end

#merge_path_description(merge_request, separator) ⇒ Object


42
43
44
45
46
47
48
# File 'app/helpers/merge_requests_helper.rb', line 42

def merge_path_description(merge_request, separator)
  if merge_request.for_fork?
    "Project:Branches: #{@merge_request.source_project_path}:#{@merge_request.source_branch} #{separator} #{@merge_request.target_project.path_with_namespace}:#{@merge_request.target_branch}"
  else
    "Branches: #{@merge_request.source_branch} #{separator} #{@merge_request.target_branch}"
  end
end

#mr_change_branches_path(merge_request) ⇒ Object


58
59
60
61
62
63
64
65
66
67
68
69
# File 'app/helpers/merge_requests_helper.rb', line 58

def mr_change_branches_path(merge_request)
  new_namespace_project_merge_request_path(
    @project.namespace, @project,
    merge_request: {
      source_project_id: @merge_request.source_project_id,
      target_project_id: @merge_request.target_project_id,
      source_branch: @merge_request.source_branch,
      target_branch: @merge_request.target_branch,
    },
    change_branches: true
  )
end

#mr_css_classes(mr) ⇒ Object


22
23
24
25
26
27
# File 'app/helpers/merge_requests_helper.rb', line 22

def mr_css_classes(mr)
  classes = "merge-request"
  classes << " closed" if mr.closed?
  classes << " merged" if mr.merged?
  classes
end

#new_mr_from_push_event(event, target_project) ⇒ Object


11
12
13
14
15
16
17
18
19
20
# File 'app/helpers/merge_requests_helper.rb', line 11

def new_mr_from_push_event(event, target_project)
  {
    merge_request: {
      source_project_id: event.project.id,
      target_project_id: target_project.id,
      source_branch: event.branch_name,
      target_branch: target_project.repository.root_ref
    }
  }
end

#new_mr_path_from_push_event(event) ⇒ Object


2
3
4
5
6
7
8
9
# File 'app/helpers/merge_requests_helper.rb', line 2

def new_mr_path_from_push_event(event)
  target_project = event.project.forked_from_project || event.project
  new_namespace_project_merge_request_path(
    event.project.namespace,
    event.project,
    new_mr_from_push_event(event, target_project)
  )
end

#source_branch_with_namespace(merge_request) ⇒ Object


71
72
73
74
75
76
77
78
79
80
81
# File 'app/helpers/merge_requests_helper.rb', line 71

def source_branch_with_namespace(merge_request)
  branch = link_to(merge_request.source_branch, namespace_project_commits_path(merge_request.source_project.namespace, merge_request.source_project, merge_request.source_branch))

  if merge_request.for_fork?
    namespace = link_to(merge_request.source_project_namespace,
      project_path(merge_request.source_project))
    namespace + ":" + branch
  else
    branch
  end
end