Class: Dependabot::Maven::UpdateChecker::VersionFinder
- Inherits:
-
Object
- Object
- Dependabot::Maven::UpdateChecker::VersionFinder
- Defined in:
- lib/dependabot/maven/update_checker/version_finder.rb
Constant Summary collapse
- TYPE_SUFFICES =
%w(jre android java).freeze
Instance Method Summary collapse
-
#initialize(dependency:, dependency_files:, credentials:, ignored_versions:) ⇒ VersionFinder
constructor
A new instance of VersionFinder.
- #latest_version_details ⇒ Object
- #versions ⇒ Object
Constructor Details
#initialize(dependency:, dependency_files:, credentials:, ignored_versions:) ⇒ VersionFinder
Returns a new instance of VersionFinder.
16 17 18 19 20 21 22 23 |
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 16 def initialize(dependency:, dependency_files:, credentials:, ignored_versions:) @dependency = dependency @dependency_files = dependency_files @credentials = credentials @ignored_versions = ignored_versions @forbidden_urls = [] end |
Instance Method Details
#latest_version_details ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 25 def latest_version_details possible_versions = versions unless wants_prerelease? possible_versions = possible_versions. reject { |v| v.fetch(:version).prerelease? } end unless wants_date_based_version? possible_versions = possible_versions. reject { |v| v.fetch(:version) > version_class.new(1900) } end possible_versions = possible_versions. select { |v| matches_dependency_version_type?(v.fetch(:version)) } ignored_versions.each do |req| ignore_req = Maven::Requirement.new(req.split(",")) possible_versions = possible_versions. reject { |v| ignore_req.satisfied_by?(v.fetch(:version)) } end possible_versions.reverse.find { |v| released?(v.fetch(:version)) } end |
#versions ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/dependabot/maven/update_checker/version_finder.rb', line 54 def versions version_details = repositories.map do |repository_details| url = repository_details.fetch("url") (repository_details). css("versions > version"). select { |node| version_class.correct?(node.content) }. map { |node| version_class.new(node.content) }. map { |version| { version: version, source_url: url } } end.flatten if version_details.none? && forbidden_urls.any? raise PrivateSourceAuthenticationFailure, forbidden_urls.first end version_details.sort_by { |details| details.fetch(:version) } end |