Class: Dependabot::Nix::Package::PackageDetailsFetcher

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/nix/package/package_details_fetcher.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency:, credentials:) ⇒ PackageDetailsFetcher

Returns a new instance of PackageDetailsFetcher.



25
26
27
28
# File 'lib/dependabot/nix/package/package_details_fetcher.rb', line 25

def initialize(dependency:, credentials:)
  @dependency = dependency
  @credentials = credentials
end

Instance Attribute Details

#credentialsObject (readonly)

Returns the value of attribute credentials.



34
35
36
# File 'lib/dependabot/nix/package/package_details_fetcher.rb', line 34

def credentials
  @credentials
end

#dependencyObject (readonly)

Returns the value of attribute dependency.



31
32
33
# File 'lib/dependabot/nix/package/package_details_fetcher.rb', line 31

def dependency
  @dependency
end

Instance Method Details

#available_versionsObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/dependabot/nix/package/package_details_fetcher.rb', line 37

def available_versions
   = fetch_tags_and_release_date

   = fetch_latest_tag_info if .empty?

  pseudo_version = .length + 1

  .flat_map do |version_details|
    pseudo_version -= 1
    tag = version_details[:tag]
    release_date = version_details[:release_date]

    Dependabot::Package::PackageRelease.new(
      version: Nix::Version.new("0.0.0-0.#{pseudo_version}"),
      tag: tag,
      released_at: release_date ? Time.parse(release_date) : nil
    )
  rescue ArgumentError
    Dependabot::Package::PackageRelease.new(
      version: Nix::Version.new("0.0.0-0.#{pseudo_version}"),
      tag: tag
    )
  end
end