Class: Dependabot::PullRequestCreator::BranchNamer

Inherits:
Object
  • Object
show all
Defined in:
lib/dependabot/pull_request_creator/branch_namer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependencies:, files:, target_branch:, separator: "/", prefix: "dependabot") ⇒ BranchNamer

Returns a new instance of BranchNamer.



11
12
13
14
15
16
17
18
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 11

def initialize(dependencies:, files:, target_branch:, separator: "/",
               prefix: "dependabot")
  @dependencies  = dependencies
  @files         = files
  @target_branch = target_branch
  @separator     = separator
  @prefix        = prefix
end

Instance Attribute Details

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



9
10
11
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 9

def dependencies
  @dependencies
end

#filesObject (readonly)

Returns the value of attribute files.



9
10
11
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 9

def files
  @files
end

#prefixObject (readonly)

Returns the value of attribute prefix.



9
10
11
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 9

def prefix
  @prefix
end

#separatorObject (readonly)

Returns the value of attribute separator.



9
10
11
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 9

def separator
  @separator
end

#target_branchObject (readonly)

Returns the value of attribute target_branch.



9
10
11
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 9

def target_branch
  @target_branch
end

Instance Method Details

#new_branch_nameObject

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/PerceivedComplexity rubocop:disable Metrics/CyclomaticComplexity



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/dependabot/pull_request_creator/branch_namer.rb', line 23

def new_branch_name
  @name ||=
    begin
      dependency_name_part =
        if dependencies.count > 1 && updating_a_property?
          property_name
        elsif dependencies.count > 1 && updating_a_dependency_set?
          dependency_set.fetch(:group)
        else
          dependencies.map(&:name).join("-and-").tr(":", "-").tr("@", "")
        end

      dep = dependencies.first

      if library? && ref_changed?(dependencies.first)
        "#{dependency_name_part}-#{new_ref(dep)}"
      elsif library?
        "#{dependency_name_part}-#{sanitized_requirement(dep)}"
      else
        "#{dependency_name_part}-#{new_version(dep)}"
      end
    end

  branch_name = File.join(prefixes, @name).gsub(%r{/\.}, "/dot-")

  # Some users need branch names without slashes
  branch_name.gsub("/", separator)
end