class Dependabot::Config::IgnoreCondition
Filters versions that should not be considered for dependency updates
Constants
- ALL_VERSIONS
- MAJOR_VERSION_TYPE
- MINOR_VERSION_TYPE
- PATCH_VERSION_TYPE
Attributes
dependency_name[R]
update_types[R]
versions[R]
Public Class Methods
new(dependency_name:, versions: nil, update_types: nil)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 15 def initialize(dependency_name:, versions: nil, update_types: nil) @dependency_name = dependency_name @versions = versions || [] @update_types = update_types || [] end
Public Instance Methods
ignored_versions(dependency, security_updates_only)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 21 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
Private Instance Methods
ignore_major(version)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 76 def ignore_major(version) return [] unless rubygems_compatible?(version) version_parts = version.split(".") lower_parts = [version_parts[0].to_i + 1] + ["a"] lower_bound = ">= #{lower_parts.join('.')}" [lower_bound] end
ignore_minor(version)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 63 def ignore_minor(version) return [] unless rubygems_compatible?(version) parts = version.split(".") version_parts = parts.fill(0, parts.length...2) lower_parts = version_parts.first(1) + [version_parts[1].to_i + 1] + ["a"] upper_parts = version_parts.first(0) + [version_parts[0].to_i + 1] lower_bound = ">= #{lower_parts.join('.')}" upper_bound = "< #{upper_parts.join('.')}" ["#{lower_bound}, #{upper_bound}"] end
ignore_patch(version)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 51 def ignore_patch(version) return [] unless rubygems_compatible?(version) parts = version.split(".") version_parts = parts.fill(0, parts.length...2) upper_parts = version_parts.first(1) + [version_parts[1].to_i + 1] lower_bound = "> #{version}" upper_bound = "< #{upper_parts.join('.')}" ["#{lower_bound}, #{upper_bound}"] end
rubygems_compatible?(version)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 86 def rubygems_compatible?(version) return false if version.nil? || version.empty? Gem::Version.correct?(version) end
transformed_update_types()
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 30 def transformed_update_types update_types.map(&:downcase).map(&:strip).compact end
versions_by_type(dependency)
click to toggle source
# File lib/dependabot/config/ignore_condition.rb, line 34 def versions_by_type(dependency) return [] unless dependency.version transformed_update_types.flat_map do |t| case t when PATCH_VERSION_TYPE ignore_patch(dependency.version) when MINOR_VERSION_TYPE ignore_minor(dependency.version) when MAJOR_VERSION_TYPE ignore_major(dependency.version) else [] end end.compact end