dependabot-common 0.389.0 → 0.390.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9781413c952e486c9417d63fc70301e7ba10d4283555831df79a6e9b5f2067d
4
- data.tar.gz: f54e1d3bda0a1126fefa4246c4a7f0f30951bf5995711b4b376fdd152a81352b
3
+ metadata.gz: 9647e43655c1fb5b645ad6a5635c619fd681f12b926c6c2195492aba565b9401
4
+ data.tar.gz: b50b9ac87807039b87a1c2c34fe2620bf332ceb607cd0c1acfb32189e78e3705
5
5
  SHA512:
6
- metadata.gz: 48591da2ac8712a8f2db6f9a8cd8c7c5debe954fa1470d7e6a625f18d5249e668cf5d48a338813c4c9ffe080d43628bf168d1dc81e463fa8753fc4edb819568e
7
- data.tar.gz: 276ee23ea7c643fb0daac14664c83dea4c4fd4070bda5d616278d94eb01cad4722bd32d022667e5f9affe802dcb986c1131dbcb4c5a5eebef359854f0b83d136
6
+ metadata.gz: '0749c51d303699690aa4e89b2f29084d4082a83f1e1f986c023ad4089284a4a1b145729be61d8759f267c8951878a8c36537eb87037c59278f0fbd249daf71bb'
7
+ data.tar.gz: 8de0c799f886104e9cd1bedd0fad7ca6e004dec5adb6f939ada8b496d37b41e324a89065542f9603b011d3ef60a9105d397f22e1c24440c029752ce94b52a56d
@@ -115,6 +115,44 @@ module Dependabot
115
115
  optional_object_hash(:metadata)
116
116
  end
117
117
 
118
+ # The source as a hash, or nil when the requirement has no source or
119
+ # names a registry as a bare string (e.g. Python's "internal" index).
120
+ sig { returns(T.nilable(ObjectHash)) }
121
+ def source_hash
122
+ value = source
123
+ return if value.nil? || value.is_a?(String)
124
+
125
+ value
126
+ end
127
+
128
+ # Reads a known source field such as "type", "ref", "url", or "digest".
129
+ # Accepts either key style because file parsers emit symbols while
130
+ # deserialised job definitions emit strings. Returns nil when the source
131
+ # is absent or a bare registry name.
132
+ sig { params(key: String).returns(T.nilable(String)) }
133
+ def source_string(key)
134
+ details = source_hash
135
+ return if details.nil?
136
+
137
+ value = details[key.to_sym] || details[key]
138
+ return if value.nil?
139
+ return value if value.is_a?(String)
140
+
141
+ raise TypeError, "source #{key} must be a string or nil"
142
+ end
143
+
144
+ # The requirement as a plain string. Nil when the requirement is absent,
145
+ # and a TypeError for the `:unfixable` sentinel, which callers that build
146
+ # manifest content cannot render.
147
+ sig { returns(T.nilable(String)) }
148
+ def requirement_string
149
+ value = requirement
150
+ return if value.nil?
151
+ return value if value.is_a?(String)
152
+
153
+ raise TypeError, "requirement must be a string or nil"
154
+ end
155
+
118
156
  private
119
157
 
120
158
  sig { params(key: Symbol).returns(T.nilable(String)) }
@@ -48,7 +48,8 @@ module Dependabot
48
48
  ignored_versions: T::Array[String],
49
49
  raise_on_ignored: T::Boolean,
50
50
  consider_version_branches_pinned: T::Boolean,
51
- dependency_source_details: T.nilable(T::Hash[Symbol, Object])
51
+ dependency_source_details: T.nilable(T::Hash[Symbol, Object]),
52
+ git_metadata_fetcher: T.nilable(Dependabot::GitMetadataFetcher)
52
53
  )
53
54
  .void
54
55
  end
@@ -58,7 +59,8 @@ module Dependabot
58
59
  ignored_versions: [],
59
60
  raise_on_ignored: false,
60
61
  consider_version_branches_pinned: false,
61
- dependency_source_details: nil
62
+ dependency_source_details: nil,
63
+ git_metadata_fetcher: nil
62
64
  )
63
65
  @dependency = dependency
64
66
  @credentials = credentials
@@ -69,6 +71,7 @@ module Dependabot
69
71
  dependency_source_details && SourceDetails.from_hash(dependency_source_details),
70
72
  T.nilable(SourceDetails)
71
73
  )
74
+ @git_metadata_fetcher = git_metadata_fetcher
72
75
  end
73
76
 
74
77
  sig { returns(T::Boolean) }
@@ -918,7 +921,7 @@ module Dependabot
918
921
  def local_repo_git_metadata_fetcher
919
922
  @local_repo_git_metadata_fetcher ||=
920
923
  T.let(
921
- GitMetadataFetcher.new(
924
+ @git_metadata_fetcher || GitMetadataFetcher.new(
922
925
  url: T.must(dependency_source_details&.url),
923
926
  credentials: credentials
924
927
  ),
@@ -930,10 +933,14 @@ module Dependabot
930
933
  def listing_repo_git_metadata_fetcher
931
934
  @listing_repo_git_metadata_fetcher ||=
932
935
  T.let(
933
- GitMetadataFetcher.new(
934
- url: T.must(listing_source_url),
935
- credentials: credentials
936
- ),
936
+ if @git_metadata_fetcher && listing_source_url == dependency_source_details&.url
937
+ @git_metadata_fetcher
938
+ else
939
+ GitMetadataFetcher.new(
940
+ url: T.must(listing_source_url),
941
+ credentials: credentials
942
+ )
943
+ end,
937
944
  T.nilable(Dependabot::GitMetadataFetcher)
938
945
  )
939
946
  end
data/lib/dependabot.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Dependabot
5
- VERSION = "0.389.0"
5
+ VERSION = "0.390.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.389.0
4
+ version: 0.390.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -625,7 +625,7 @@ licenses:
625
625
  - MIT
626
626
  metadata:
627
627
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
628
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.389.0
628
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.390.0
629
629
  rdoc_options: []
630
630
  require_paths:
631
631
  - lib