class Dependabot::Config::IgnoreCondition
Filters versions that should not be considered for dependency updates
def correct_version_for(dependency)
def correct_version_for(dependency) version = dependency.version return if version.nil? || version.empty? version_class = version_class_for(dependency.package_manager) return unless version_class.correct?(version) version_class.new(version) end
def ignored_versions(dependency, security_updates_only)
def ignored_versions(dependency, security_updates_only) return versions if security_updates_only return [ALL_VERSIONS] if versions.empty? && transformed_update_types.empty? versions_by_type(dependency) + versions end
def initialize(dependency_name:, versions: nil, update_types: nil)
def initialize(dependency_name:, versions: nil, update_types: nil) @dependency_name = T.let(dependency_name, String) @versions = T.let(versions || [], T::Array[String]) @update_types = T.let(update_types || [], T::Array[String]) end
def transformed_update_types
def transformed_update_types update_types.map(&:downcase).filter_map(&:strip) end
def version_class_for(package_manager)
def version_class_for(package_manager) Utils.version_class_for_package_manager(package_manager) rescue StandardError Version end
def versions_by_type(dependency)
def versions_by_type(dependency) version = correct_version_for(dependency) return [] unless version transformed_update_types.flat_map do |t| case t when PATCH_VERSION_TYPE version.ignored_patch_versions when MINOR_VERSION_TYPE version.ignored_minor_versions when MAJOR_VERSION_TYPE version.ignored_major_versions else [] end end.compact end