Class: Dependabot::MetadataFinders::Base::GitLabRelease

Inherits:
T::ImmutableStruct
  • Object
show all
Extended by:
T::Sig
Defined in:
lib/dependabot/metadata_finders/base/release_finder.rb

Class Method Summary collapse

Class Method Details

.from_tag(tag, source_url:) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/dependabot/metadata_finders/base/release_finder.rb', line 32

def self.from_tag(tag, source_url:)
  name = T.cast(tag["name"], Object)
  release = T.cast(tag["release"], Object)
  commit = T.cast(tag["commit"], Object)
  return unless name.is_a?(String)
  return unless release.is_a?(Gitlab::ObjectifiedHash)
  return unless commit.is_a?(Gitlab::ObjectifiedHash)

  tag_name = T.cast(release["tag_name"], Object)
  return unless tag_name.is_a?(String)

  authored_at = time_value(T.cast(commit["authored_date"], Object))
  return unless authored_at

  description = T.cast(release["description"], Object)
  new(
    name: name,
    tag_name: tag_name,
    body: description.is_a?(String) ? description : nil,
    html_url: "#{source_url}/tags/#{name}",
    authored_at: authored_at
  )
end