class Dependabot::Config::UpdateConfig

Configuration for a single ecosystem

Attributes

commit_message_options[R]
ignore_conditions[R]

Public Class Methods

new(ignore_conditions: nil, commit_message_options: nil) click to toggle source
# File lib/dependabot/config/update_config.rb, line 10
def initialize(ignore_conditions: nil, commit_message_options: nil)
  @ignore_conditions = ignore_conditions || []
  @commit_message_options = commit_message_options
end
wildcard_match?(wildcard_string, candidate_string) click to toggle source
# File lib/dependabot/config/update_config.rb, line 27
def self.wildcard_match?(wildcard_string, candidate_string)
  return false unless wildcard_string && candidate_string

  regex_string = "a#{wildcard_string.downcase}a".split("*").
                 map { |p| Regexp.quote(p) }.
                 join(".*").gsub(/^a|a$/, "")
  regex = /^#{regex_string}$/
  regex.match?(candidate_string.downcase)
end

Public Instance Methods

ignored_versions_for(dependency, security_updates_only: false) click to toggle source
# File lib/dependabot/config/update_config.rb, line 15
def ignored_versions_for(dependency, security_updates_only: false)
  normalizer = name_normaliser_for(dependency)
  dep_name = normalizer.call(dependency.name)

  @ignore_conditions.
    select { |ic| self.class.wildcard_match?(normalizer.call(ic.dependency_name), dep_name) }.
    map { |ic| ic.ignored_versions(dependency, security_updates_only) }.
    flatten.
    compact.
    uniq
end

Private Instance Methods

name_normaliser_for(dep) click to toggle source
# File lib/dependabot/config/update_config.rb, line 39
def name_normaliser_for(dep)
  name_normaliser ||= {}
  name_normaliser[dep] ||= Dependency.name_normaliser_for_package_manager(dep.package_manager)
end