dependabot-pub 0.391.0 → 0.392.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: 77b5955d5025ed13a3ba90569db1fa52f83613ae5dc3b9b03934c6bf241727a5
4
- data.tar.gz: fc5611b1be9aee08c4e477c04e58f760daa73397dfad07c53df25275ff6d41b2
3
+ metadata.gz: 9b39deceee9e7e4be52a1fb5ade31bdff9297df770a3b626b96dad32734d2e65
4
+ data.tar.gz: 55f79fa60dfde8fa7600a6d1e74c1228476614ecd8813e5ef81a03c76c369c80
5
5
  SHA512:
6
- metadata.gz: 051dc47abb9fff13ca855e35087516be53f00c21cfcb5cb6afb82cc57cf4c9546b82d32bfa24181d4a9dac8e35a6bc43a454e673502e1f69b0e2de54fd55843b
7
- data.tar.gz: e004a01a8bf9b731f150248b34f7f2bec346a418df6556112e027baa3163b45f121020e0c960f7c6ec469b07f5f0889bc365d7a31d5de7f5c789c232514a9025
6
+ metadata.gz: 3264a592f1daa1440d650ff1f93992592793cd5235a02ff583f99746c5f1fcff63d69524e48ca7ae175a71c2400dda41f748b0f3ed2164cc20830aa9385a75aa
7
+ data.tar.gz: 909ad21285948af17082a8b8ba14996bd20d04d1dc7d2d1ae14b43922903d4becb570d6536e8428fdd73b9d23483e1e6349173fcc7911aa5fa33f8a989930f96
@@ -9,6 +9,7 @@ require "sorbet-runtime"
9
9
  require "dependabot/errors"
10
10
  require "dependabot/logger"
11
11
  require "dependabot/pub/requirement"
12
+ require "dependabot/pub/requirement_source"
12
13
  require "dependabot/requirements_update_strategy"
13
14
  require "dependabot/shared_helpers"
14
15
 
@@ -62,8 +63,8 @@ module Dependabot
62
63
 
63
64
  sig { params(dependency: Dependabot::Dependency).returns(String) }
64
65
  def repository_url(dependency)
65
- source = dependency.requirements.first&.dig(:source)
66
- source&.dig("description", "url") || options[:pub_hosted_url] || "https://pub.dev"
66
+ RequirementSource.new(dependency.requirements.first).description_string("url") || options[:pub_hosted_url] ||
67
+ "https://pub.dev"
67
68
  end
68
69
 
69
70
  sig { params(dependency: Dependabot::Dependency).returns(T::Hash[String, T.untyped]) }
@@ -5,6 +5,7 @@ require "excon"
5
5
  require "sorbet-runtime"
6
6
  require "dependabot/metadata_finders"
7
7
  require "dependabot/metadata_finders/base"
8
+ require "dependabot/pub/requirement_source"
8
9
  require "dependabot/registry_client"
9
10
 
10
11
  module Dependabot
@@ -16,14 +17,14 @@ module Dependabot
16
17
 
17
18
  sig { override.returns(T.nilable(Dependabot::Source)) }
18
19
  def look_up_source
19
- source = dependency.requirements.first&.dig(:source)
20
- if source&.dig("type") == "git"
21
- result = T.must(Source.from_url(source.dig("description", "url")))
22
- result.directory = source.dig("description", "path")
23
- result.commit = source.dig("description", "resolved-ref")
20
+ source = RequirementSource.new(dependency.requirements.first)
21
+ if source.type == "git"
22
+ result = T.must(Source.from_url(source.description_string("url")))
23
+ result.directory = source.description_string("path")
24
+ result.commit = source.description_string("resolved-ref")
24
25
  return result
25
26
  end
26
- repository_url = source&.dig("description", "url") || "https://pub.dev"
27
+ repository_url = source.description_string("url") || "https://pub.dev"
27
28
 
28
29
  listing = repository_listing(repository_url)
29
30
  repo = listing.dig("latest", "pubspec", "repository")
@@ -0,0 +1,53 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ require "dependabot/dependency_requirement"
5
+
6
+ module Dependabot
7
+ module Pub
8
+ class RequirementSource
9
+ extend T::Sig
10
+
11
+ sig { params(requirement: T.nilable(Dependabot::DependencyRequirement)).void }
12
+ def initialize(requirement)
13
+ @requirement = requirement
14
+ end
15
+
16
+ sig { returns(T.nilable(String)) }
17
+ def type
18
+ requirement&.source_string("type")
19
+ end
20
+
21
+ sig { params(key: String).returns(T.nilable(String)) }
22
+ def description_string(key)
23
+ description = description_hash
24
+ return unless description
25
+
26
+ value = description.key?(key.to_sym) ? description[key.to_sym] : description[key]
27
+ return if value.nil?
28
+ return value if value.is_a?(String)
29
+
30
+ raise TypeError, "source description #{key} must be a string or nil"
31
+ end
32
+
33
+ private
34
+
35
+ sig { returns(T.nilable(Dependabot::DependencyRequirement)) }
36
+ attr_reader :requirement
37
+
38
+ sig { returns(T.nilable(Dependabot::DependencyRequirement::ObjectHash)) }
39
+ def description_hash
40
+ source = requirement&.source_hash
41
+ return unless source
42
+
43
+ value = source.key?(:description) ? source[:description] : source["description"]
44
+ return if value.nil?
45
+ unless value.is_a?(Hash) && value.keys.all? { |key| key.is_a?(String) || key.is_a?(Symbol) }
46
+ raise TypeError, "source description must be a hash with string or symbol keys"
47
+ end
48
+
49
+ value
50
+ end
51
+ end
52
+ end
53
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-pub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.391.0
4
+ version: 0.392.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -15,14 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.391.0
18
+ version: 0.392.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.391.0
25
+ version: 0.392.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -251,6 +251,7 @@ files:
251
251
  - lib/dependabot/pub/package/package_details_fetcher.rb
252
252
  - lib/dependabot/pub/package_manager.rb
253
253
  - lib/dependabot/pub/requirement.rb
254
+ - lib/dependabot/pub/requirement_source.rb
254
255
  - lib/dependabot/pub/update_checker.rb
255
256
  - lib/dependabot/pub/update_checker/latest_version_finder.rb
256
257
  - lib/dependabot/pub/version.rb
@@ -259,7 +260,7 @@ licenses:
259
260
  - MIT
260
261
  metadata:
261
262
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
262
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.391.0
263
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.392.0
263
264
  rdoc_options: []
264
265
  require_paths:
265
266
  - lib