Module: Dependabot::UpdateCheckers::CooldownCalculation
- Extended by:
- T::Sig
- Defined in:
- lib/dependabot/update_checkers/cooldown_calculation.rb
Overview
Shared utility module for cooldown period calculations.
Provides stateless module methods used by ecosystem update checkers to determine whether a release is within its cooldown window and how many cooldown days apply for a given version bump.
Constant Summary collapse
- DAY_IN_SECONDS =
T.let(24 * 60 * 60, Integer)
Class Method Summary collapse
- .cooldown_days_for(cooldown, current_version, new_version) ⇒ Object
- .skip_cooldown?(cooldown, dependency_name, cooldown_enabled: true) ⇒ Boolean
- .within_cooldown_window?(release_date, cooldown_days) ⇒ Boolean
Class Method Details
.cooldown_days_for(cooldown, current_version, new_version) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/dependabot/update_checkers/cooldown_calculation.rb', line 34 def self.cooldown_days_for(cooldown, current_version, new_version) return cooldown.default_days unless current_version cooldown.cooldown_days_for( current_version.semver_parts, new_version.semver_parts ) end |
.skip_cooldown?(cooldown, dependency_name, cooldown_enabled: true) ⇒ Boolean
50 51 52 |
# File 'lib/dependabot/update_checkers/cooldown_calculation.rb', line 50 def self.skip_cooldown?(cooldown, dependency_name, cooldown_enabled: true) cooldown.nil? || !cooldown_enabled || !cooldown.included?(dependency_name) end |
.within_cooldown_window?(release_date, cooldown_days) ⇒ Boolean
21 22 23 24 25 |
# File 'lib/dependabot/update_checkers/cooldown_calculation.rb', line 21 def self.within_cooldown_window?(release_date, cooldown_days) return false if cooldown_days <= 0 (Time.now.to_i - release_date.to_i) < (cooldown_days * DAY_IN_SECONDS) end |