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 +4 -4
- data/lib/dependabot/helm/file_parser.rb +2 -3
- data/lib/dependabot/helm/file_updater/chart_updater.rb +5 -5
- data/lib/dependabot/helm/file_updater/image_updater.rb +4 -2
- data/lib/dependabot/helm/requirement.rb +3 -3
- data/lib/dependabot/helm/update_checker/requirements_updater.rb +12 -8
- data/lib/dependabot/helm/update_checker.rb +20 -18
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fefe204d6b6b38a5013fe2a15d730c151d6607a73342e7794a33ef42c183a19e
|
|
4
|
+
data.tar.gz: d4d043b94710e2dec098208e7d71d4cb0f5f02ece40a1a6e9ac2bf32d6432348
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
69
|
-
req
|
|
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
|
|
125
|
+
r.file == file.name && r.metadata_symbol("type") == :helm_chart
|
|
126
126
|
end
|
|
127
|
-
req = reqs.find { |r| r.
|
|
128
|
-
req
|
|
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
|
|
134
|
-
reqs.any? { |r| r
|
|
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
|
|
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 =
|
|
26
|
-
OR_SEPARATOR =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
51
|
-
case req.
|
|
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
|
|
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 =
|
|
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
|
|
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.
|
|
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.
|
|
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)
|
|
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).
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
526
|
-
parts =
|
|
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 =
|
|
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:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|