Class: Dependabot::GithubActions::UpdateChecker

Inherits:
UpdateCheckers::Base
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/github_actions/update_checker.rb,
lib/dependabot/github_actions/update_checker/latest_version_finder.rb

Defined Under Namespace

Classes: LatestVersionFinder

Constant Summary collapse

GitSource =
T.type_alias { T::Hash[Symbol, String] }

Instance Method Summary collapse

Instance Method Details

#latest_resolvable_versionObject



35
36
37
38
# File 'lib/dependabot/github_actions/update_checker.rb', line 35

def latest_resolvable_version
  # Resolvability isn't an issue for GitHub Actions.
  latest_version
end

#latest_resolvable_version_with_no_unlockObject



41
42
43
44
# File 'lib/dependabot/github_actions/update_checker.rb', line 41

def latest_resolvable_version_with_no_unlock
  # No concept of "unlocking" for GitHub Actions (since no lockfile)
  dependency.version
end

#latest_versionObject



27
28
29
30
31
32
# File 'lib/dependabot/github_actions/update_checker.rb', line 27

def latest_version
  @latest_version ||= T.let(
    T.must(latest_version_finder).latest_release_version,
    T.nilable(T.any(String, Gem::Version))
  )
end

#lowest_resolvable_security_fix_versionObject



47
48
49
50
# File 'lib/dependabot/github_actions/update_checker.rb', line 47

def lowest_resolvable_security_fix_version
  # Resolvability isn't an issue for GitHub Actions.
  lowest_security_fix_version
end

#lowest_security_fix_versionObject



53
54
55
56
57
58
# File 'lib/dependabot/github_actions/update_checker.rb', line 53

def lowest_security_fix_version
  @lowest_security_fix_version ||= T.let(
    T.must(latest_version_finder).lowest_security_fix_release&.fetch(:version),
    T.nilable(Dependabot::Version)
  )
end

#up_to_date?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/dependabot/github_actions/update_checker.rb', line 61

def up_to_date?
  super && !onboarded_requirements_changed?
end

#updated_requirementsObject



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/dependabot/github_actions/update_checker.rb', line 66

def updated_requirements
  updated_reqs = dependency.requirements.map do |req|
    source = req.source_hash
    updated = updated_ref(source, onboarded: onboarded_requirement?(req))
    next req unless updated

    new_source = source_with_ref(T.must(source), updated)
    Dependabot::DependencyRequirement.create(req.merge(source: new_source))
  end
  updated_reqs
end