class Dependabot::Config::UpdateConfig
Configuration for a single ecosystem
def self.wildcard_match?(wildcard_string, candidate_string)
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
def extract_base_version_from_requirement(dependency)
def extract_base_version_from_requirement(dependency) requirements = dependency.requirements requirement = T.must(requirements.first)[:requirement] version = requirement&.match(/\d+\.\d+\.\d+/)&.to_s Dependabot::Dependency.new( name: dependency.name, version: version, requirements: dependency.requirements, package_manager: dependency.package_manager ) end
def ignored_versions_for(dependency, security_updates_only: false)
def ignored_versions_for(dependency, security_updates_only: false) normalizer = name_normaliser_for(dependency) dep_name = T.must(normalizer).call(dependency.name) if dependency.version.nil? && dependency.requirements.any? dependency = extract_base_version_from_requirement(dependency) end @ignore_conditions .select { |ic| self.class.wildcard_match?(T.must(normalizer).call(ic.dependency_name), dep_name) } .map { |ic| ic.ignored_versions(dependency, security_updates_only) } .flatten .compact .uniq end
def initialize(ignore_conditions: nil, commit_message_options: nil)
def initialize(ignore_conditions: nil, commit_message_options: nil) @ignore_conditions = T.let(ignore_conditions || [], T::Array[IgnoreCondition]) @commit_message_options = commit_message_options end
def name_normaliser_for(dep)
def name_normaliser_for(dep) name_normaliser ||= {} name_normaliser[dep] ||= Dependency.name_normaliser_for_package_manager(dep.package_manager) end