dependabot-helm 0.390.0 → 0.391.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: 93712e7ddf8300b7a3eeaff8363220607eb72453c78859275dbab366d78e7d26
4
- data.tar.gz: c8677544088532a69e90f056281c28578f279e826ddc624f98b80709563212c3
3
+ metadata.gz: fefe204d6b6b38a5013fe2a15d730c151d6607a73342e7794a33ef42c183a19e
4
+ data.tar.gz: d4d043b94710e2dec098208e7d71d4cb0f5f02ece40a1a6e9ac2bf32d6432348
5
5
  SHA512:
6
- metadata.gz: 0e00b5559393479a515383d05da656067f673db20503176fee04436726dd5dcd5a45c3f83241fd378a94e64e1f863c51f76f2472593b6de38de28585b009d9a1
7
- data.tar.gz: 06206be3e63e348226371f69a1f1ede06c14402f3648867dd9749d4bedc749a6b75e63a230ad14d15e47c0d8eb3a61c933c658165620f6c61a6316c5eb191cb5
6
+ metadata.gz: d516d5cc2af498019df76b8639d26ed443afae821867d9c6d0f5a1be9f849a9054fa1f7d5b3e7f7a2a187232173baa869a1bdcbb4b97259d03f6a00064dfea2f
7
+ data.tar.gz: b913d6f21bc0ee3007bd276f7682683a7c59f9733f75786979d8877681ca33eb33f6e4ee8c511cc58917b15855ada43030d2b1aa6d8e504b9b8cfe678164569e
@@ -65,9 +65,8 @@ module Dependabot
65
65
  sig { params(dependency: Dependabot::Dependency, type: Symbol).void }
66
66
  def add_dependency_type_to_dependency(dependency, type)
67
67
  dependency.requirements.map! do |req|
68
- req[:metadata] = {} unless req[:metadata]
69
- req[:metadata][:type] = type
70
- req
68
+ metadata = req.metadata || {}
69
+ Dependabot::DependencyRequirement.create(req.merge(metadata: metadata.merge(type: type)))
71
70
  end
72
71
  end
73
72
 
@@ -122,16 +122,16 @@ module Dependabot
122
122
  sig { params(file: Dependabot::DependencyFile, old_version: String).returns(T.nilable(String)) }
123
123
  def updated_requirement_string(file, old_version)
124
124
  reqs = dependency.requirements.select do |r|
125
- r[:file] == file.name && r.dig(:metadata, :type) == :helm_chart
125
+ r.file == file.name && r.metadata_symbol("type") == :helm_chart
126
126
  end
127
- req = reqs.find { |r| r.dig(:source, :tag) == old_version } || reqs.first
128
- req && req[:requirement]
127
+ req = reqs.find { |r| r.source_string("tag") == old_version } || reqs.first
128
+ req&.requirement_string
129
129
  end
130
130
 
131
131
  sig { params(file: Dependabot::DependencyFile).returns(T::Boolean) }
132
132
  def update_chart_dependency?(file)
133
- reqs = dependency.requirements.select { |r| r[:file] == file.name }
134
- reqs.any? { |r| r[:metadata]&.dig(:type) == :helm_chart }
133
+ reqs = dependency.requirements.select { |r| r.file == file.name }
134
+ reqs.any? { |r| r.metadata_symbol("type") == :helm_chart }
135
135
  end
136
136
  end
137
137
  end
@@ -116,9 +116,11 @@ module Dependabot
116
116
  end
117
117
  def update_version_tags(value_node, content, dependency_version)
118
118
  dependency.requirements.each do |req|
119
- next unless req[:metadata][:type] == :docker_image
119
+ next unless req.metadata_symbol("type") == :docker_image
120
+
121
+ tag_value = req.source_string("tag")
122
+ next unless tag_value
120
123
 
121
- tag_value = req[:source][:tag]
122
124
  version_scalar = value_node.children.find do |node|
123
125
  node.is_a?(Psych::Nodes::Scalar) && node.value == tag_value
124
126
  end
@@ -22,8 +22,8 @@ module Dependabot
22
22
  class Requirement < Dependabot::Requirement
23
23
  extend T::Sig
24
24
 
25
- AND_SEPARATOR = T.let(/(?<=[a-zA-Z0-9*])\s+(?:&+\s+)?(?!\s*[|-])/, Regexp)
26
- OR_SEPARATOR = T.let(/(?<=[a-zA-Z0-9*])\s*\|+/, Regexp)
25
+ AND_SEPARATOR = /(?<=[a-zA-Z0-9*])\s+(?:&+\s+)?(?!\s*[|-])/
26
+ OR_SEPARATOR = /(?<=[a-zA-Z0-9*])\s*\|+/
27
27
 
28
28
  # Allow an optional 'v' prefix and an optional '+<build metadata/digest>'
29
29
  # suffix. Helm::Version supports the latter (e.g. "1.0.119807+<digest>"
@@ -33,7 +33,7 @@ module Dependabot
33
33
  version_pattern = "v?#{Gem::Version::VERSION_PATTERN}(?:\\+[0-9A-Za-z\\-.]+)?"
34
34
 
35
35
  PATTERN_RAW = T.let("\\s*(#{quoted})?\\s*(#{version_pattern})\\s*".freeze, String)
36
- PATTERN = T.let(/\A#{PATTERN_RAW}\z/, Regexp)
36
+ PATTERN = /\A#{PATTERN_RAW}\z/
37
37
 
38
38
  # Always returns a Helm::Version (never the plain Gem::Version-backed
39
39
  # DefaultRequirement), so satisfaction comparisons stay Helm::Version vs
@@ -71,9 +71,11 @@ module Dependabot
71
71
 
72
72
  requirements.map do |req|
73
73
  next req unless latest_resolvable_version
74
- next req unless req[:requirement]
74
+
75
+ requirement = req.requirement_string
76
+ next req unless requirement
75
77
  # Leave dist-tags / non-numeric leading tokens untouched.
76
- next req if req[:requirement].match?(/^([A-Za-uw-z]|v[^\d])/)
78
+ next req if requirement.match?(/^([A-Za-uw-z]|v[^\d])/)
77
79
 
78
80
  case update_strategy
79
81
  when RequirementsUpdateStrategy::WidenRanges then widen_requirement(req)
@@ -105,7 +107,7 @@ module Dependabot
105
107
 
106
108
  sig { params(req: Dependabot::DependencyRequirement).returns(Dependabot::DependencyRequirement) }
107
109
  def update_version_requirement(req)
108
- current_requirement = req[:requirement]
110
+ current_requirement = T.must(req.requirement_string)
109
111
  return req if current_requirement.strip == ""
110
112
 
111
113
  if current_requirement.match?(/(<|-\s)/i)
@@ -114,7 +116,7 @@ module Dependabot
114
116
  return req if ruby_requirements(current_requirement).any? { |r| r.satisfied_by?(latest_resolvable_version) }
115
117
 
116
118
  updated_req = update_range_requirement(current_requirement)
117
- return T.cast(req.merge(requirement: updated_req), Dependabot::DependencyRequirement)
119
+ return Dependabot::DependencyRequirement.create(req.merge(requirement: updated_req))
118
120
  end
119
121
 
120
122
  # Strict lower-bound (`>`) and not-equal (`!=`) constraints are already
@@ -128,13 +130,15 @@ module Dependabot
128
130
  end
129
131
 
130
132
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
131
- T.cast(req.merge(requirement: update_version_string(reqs.first)), Dependabot::DependencyRequirement)
133
+ Dependabot::DependencyRequirement.create(
134
+ req.merge(requirement: update_version_string(T.must(reqs.first)))
135
+ )
132
136
  end
133
137
 
134
138
  # Blank, or already permitted by the resolved version, under any strategy.
135
139
  sig { params(req: Dependabot::DependencyRequirement).returns(T::Boolean) }
136
140
  def already_satisfied?(req)
137
- current_requirement = req[:requirement]
141
+ current_requirement = T.must(req.requirement_string)
138
142
  return true if current_requirement.strip == ""
139
143
 
140
144
  ruby_requirements(current_requirement).any? { |r| r.satisfied_by?(latest_resolvable_version) }
@@ -151,7 +155,7 @@ module Dependabot
151
155
  def widen_requirement(req)
152
156
  return req if already_satisfied?(req)
153
157
 
154
- current_requirement = req[:requirement]
158
+ current_requirement = T.must(req.requirement_string)
155
159
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
156
160
 
157
161
  updated_requirement =
@@ -166,7 +170,7 @@ module Dependabot
166
170
  "#{current_requirement} || ^#{latest_resolvable_version}"
167
171
  end
168
172
 
169
- T.cast(req.merge(requirement: updated_requirement), Dependabot::DependencyRequirement)
173
+ Dependabot::DependencyRequirement.create(req.merge(requirement: updated_requirement))
170
174
  end
171
175
 
172
176
  sig { params(requirement_string: String).returns(T::Array[Helm::Requirement]) }
@@ -47,14 +47,16 @@ module Dependabot
47
47
  def updated_requirements
48
48
  return dependency.requirements unless latest_version
49
49
 
50
- updated_reqs = dependency.requirements.map do |req|
51
- case req.dig(:metadata, :type)
50
+ dependency.requirements.map do |req|
51
+ case req.metadata_symbol("type")
52
52
  when nil then req
53
53
  when :helm_chart then updated_chart_requirement(req)
54
- else req.merge(requirement: latest_version.to_s) # image deps: exact overwrite
54
+ else
55
+ Dependabot::DependencyRequirement.create(
56
+ req.merge(requirement: latest_version.to_s)
57
+ ) # image deps: exact overwrite
55
58
  end
56
59
  end
57
- wrap_requirements(updated_reqs)
58
60
  end
59
61
 
60
62
  private
@@ -68,7 +70,7 @@ module Dependabot
68
70
  sig { params(req: Dependabot::DependencyRequirement).returns(Dependabot::DependencyRequirement) }
69
71
  def updated_chart_requirement(req)
70
72
  current_constraint = chart_constraint_for(req)
71
- synthetic = T.cast(req.merge(requirement: current_constraint), Dependabot::DependencyRequirement)
73
+ synthetic = Dependabot::DependencyRequirement.create(req.merge(requirement: current_constraint))
72
74
 
73
75
  T.must(
74
76
  RequirementsUpdater.new(
@@ -85,7 +87,7 @@ module Dependabot
85
87
  # or ranges) into one dependency with a single combined version.
86
88
  sig { params(req: Dependabot::DependencyRequirement).returns(String) }
87
89
  def chart_constraint_for(req)
88
- (req[:requirement] || req.dig(:source, :tag) || dependency.version).to_s
90
+ (req.requirement || req.source_string("tag") || dependency.version).to_s
89
91
  end
90
92
 
91
93
  sig { returns(Dependabot::RequirementsUpdateStrategy) }
@@ -111,7 +113,7 @@ module Dependabot
111
113
  sig { returns(Dependabot::Version) }
112
114
  def chart_anchor_version
113
115
  constraints = dependency.requirements
114
- .select { |r| r.dig(:metadata, :type) == :helm_chart }
116
+ .select { |r| r.metadata_symbol("type") == :helm_chart }
115
117
  .map { |r| chart_constraint_for(r) }
116
118
  constraints = [dependency.version.to_s] if constraints.empty?
117
119
  T.must(constraints.map { |c| anchor_for_constraint(c) }.min)
@@ -283,12 +285,12 @@ module Dependabot
283
285
  # name across files/entries); an update is warranted if even one changes.
284
286
  sig { returns(T::Boolean) }
285
287
  def chart_requirement_changes?
286
- chart_reqs = dependency.requirements.select { |r| r.dig(:metadata, :type) == :helm_chart }
288
+ chart_reqs = dependency.requirements.select { |r| r.metadata_symbol("type") == :helm_chart }
287
289
  chart_reqs = dependency.requirements if chart_reqs.empty?
288
290
  return true if chart_reqs.empty?
289
291
 
290
292
  chart_reqs.any? do |req|
291
- updated_chart_requirement(req)[:requirement].to_s != chart_constraint_for(req)
293
+ updated_chart_requirement(req).requirement.to_s != chart_constraint_for(req)
292
294
  end
293
295
  end
294
296
 
@@ -307,7 +309,7 @@ module Dependabot
307
309
  sig { returns(Symbol) }
308
310
  def dependency_type
309
311
  req = dependency.requirements.first
310
- type = T.must(req).dig(:metadata, :type)
312
+ type = T.must(req).metadata_symbol("type")
311
313
 
312
314
  type || :unknown
313
315
  end
@@ -350,8 +352,7 @@ module Dependabot
350
352
  sig { returns(T.nilable(Gem::Version)) }
351
353
  def fetch_latest_chart_version
352
354
  chart_name = dependency.name
353
- source = dependency.requirements.first&.dig(:source)
354
- repo_url = source&.dig(:registry)
355
+ repo_url = dependency.requirements.first&.source_string("registry")
355
356
  repo_name = extract_repo_name(repo_url)
356
357
  releases = fetch_releases_with_helm_cli(chart_name, repo_name, repo_url)
357
358
  return releases if releases
@@ -518,19 +519,20 @@ module Dependabot
518
519
 
519
520
  sig { returns(Dependabot::Dependency) }
520
521
  def build_docker_dependency
521
- source = T.must(dependency.requirements.first)[:source]
522
+ requirement = T.must(dependency.requirements.first)
523
+ path = requirement.source_string("path")
522
524
  name = dependency.name
523
525
  version = dependency.version
524
526
 
525
- if source[:path]
526
- parts = source[:path].split(".")
527
+ if path
528
+ parts = path.split(".")
527
529
  if parts.length > 1 && (parts.last == "tag" || parts.last == "image")
528
530
  # The actual image name might be in image.repository
529
- name = parts[0...-1].join(".")
531
+ name = T.must(parts[0...-1]).join(".")
530
532
  end
531
533
  end
532
534
 
533
- registry = source[:registry] || nil
535
+ registry = requirement.source_string("registry")
534
536
 
535
537
  Dependency.new(
536
538
  name: name,
@@ -538,7 +540,7 @@ module Dependabot
538
540
  requirements: [{
539
541
  requirement: nil,
540
542
  groups: [],
541
- file: T.must(dependency.requirements.first)[:file],
543
+ file: requirement.file,
542
544
  source: {
543
545
  registry: registry,
544
546
  tag: version
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-helm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.390.0
4
+ version: 0.391.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.390.0
18
+ version: 0.391.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.390.0
25
+ version: 0.391.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: dependabot-docker
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 0.390.0
32
+ version: 0.391.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 0.390.0
39
+ version: 0.391.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: debug
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -275,7 +275,7 @@ licenses:
275
275
  - MIT
276
276
  metadata:
277
277
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
278
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.390.0
278
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.391.0
279
279
  rdoc_options: []
280
280
  require_paths:
281
281
  - lib