dependabot-helm 0.394.0 → 0.395.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_updater/image_updater.rb +87 -2
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 66957e7dcbc920c485cc615845dfcebe5c7f05b6e1f21e22e89a8a0ba7501709
|
|
4
|
+
data.tar.gz: 5abe7647baa0d3e87d680dc1450c8766de9d9a78b9c68777a5e56591bd672371
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2540ab6c3f7ea1f48a9679a42eb6fe3be10525c32b337c21334f4ddba80a71cc8ae657526560dc20eb06ba2dc9d67e35e8d8023fcdcf864ffdb7b397de32f00b
|
|
7
|
+
data.tar.gz: c58f75ddbd53ac731d258ebb5e6863bc1a314c2a6bfdb0bdb709256439a56b9c88b62001996d0cc5374b7c8fb6f612c50dc4d36d254ad3172856bac36b9d7420
|
|
@@ -40,7 +40,8 @@ module Dependabot
|
|
|
40
40
|
|
|
41
41
|
sig { params(yaml_stream: Psych::Nodes::Stream, content: String).returns(String) }
|
|
42
42
|
def update_image_tags_recursive(yaml_stream, content)
|
|
43
|
-
|
|
43
|
+
# -1 keeps a trailing empty element so join restores a final newline
|
|
44
|
+
updated_content = content.dup.split("\n", -1)
|
|
44
45
|
|
|
45
46
|
yaml_stream.children.each do |document|
|
|
46
47
|
document.children.each do |root_node|
|
|
@@ -90,8 +91,19 @@ module Dependabot
|
|
|
90
91
|
|
|
91
92
|
sig { params(key: String, value_node: Psych::Nodes::Node, content: T::Array[String]).returns(T::Array[String]) }
|
|
92
93
|
def process_image_key(key, value_node, content)
|
|
93
|
-
return content unless key == "image"
|
|
94
|
+
return content unless key == "image"
|
|
95
|
+
|
|
96
|
+
if value_node.is_a?(Psych::Nodes::Mapping)
|
|
97
|
+
process_mapping_image(value_node, content)
|
|
98
|
+
elsif value_node.is_a?(Psych::Nodes::Scalar)
|
|
99
|
+
process_scalar_image(value_node, content)
|
|
100
|
+
else
|
|
101
|
+
content
|
|
102
|
+
end
|
|
103
|
+
end
|
|
94
104
|
|
|
105
|
+
sig { params(value_node: Psych::Nodes::Mapping, content: T::Array[String]).returns(T::Array[String]) }
|
|
106
|
+
def process_mapping_image(value_node, content)
|
|
95
107
|
dependency_name = dependency.name
|
|
96
108
|
has_dependency = contains_dependency?(value_node, dependency_name)
|
|
97
109
|
return content unless has_dependency
|
|
@@ -100,6 +112,12 @@ module Dependabot
|
|
|
100
112
|
update_version_tags(value_node, content, dependency_version)
|
|
101
113
|
end
|
|
102
114
|
|
|
115
|
+
sig { params(value_node: Psych::Nodes::Scalar, content: T::Array[String]).returns(T::Array[String]) }
|
|
116
|
+
def process_scalar_image(value_node, content)
|
|
117
|
+
dependency_version = T.must(dependency.version)
|
|
118
|
+
update_scalar_image_tag(value_node, content, dependency_version)
|
|
119
|
+
end
|
|
120
|
+
|
|
103
121
|
sig { params(node: Psych::Nodes::Node, dependency_name: String).returns(T::Boolean) }
|
|
104
122
|
def contains_dependency?(node, dependency_name)
|
|
105
123
|
node.children.any? do |child|
|
|
@@ -133,6 +151,73 @@ module Dependabot
|
|
|
133
151
|
|
|
134
152
|
content
|
|
135
153
|
end
|
|
154
|
+
|
|
155
|
+
sig do
|
|
156
|
+
params(
|
|
157
|
+
value_node: Psych::Nodes::Scalar,
|
|
158
|
+
content: T::Array[String],
|
|
159
|
+
dependency_version: String
|
|
160
|
+
).returns(T::Array[String])
|
|
161
|
+
end
|
|
162
|
+
def update_scalar_image_tag(value_node, content, dependency_version)
|
|
163
|
+
dependency_name = dependency.name
|
|
164
|
+
|
|
165
|
+
dependency.requirements.each do |req|
|
|
166
|
+
next unless req.metadata_symbol("type") == :docker_image
|
|
167
|
+
|
|
168
|
+
old_tag = req.source_string("tag")
|
|
169
|
+
next unless old_tag
|
|
170
|
+
# digest-pinned images resolve by digest, so a tag-only bump would silently keep the old image
|
|
171
|
+
next if req.source_string("digest")
|
|
172
|
+
|
|
173
|
+
old_declaration = scalar_image_declaration(dependency_name, req, old_tag)
|
|
174
|
+
next unless value_node.value.chomp == old_declaration
|
|
175
|
+
|
|
176
|
+
new_declaration = scalar_image_declaration(dependency_name, req, dependency_version)
|
|
177
|
+
replace_within_node_span(value_node, content, old_declaration, new_declaration)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
content
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
sig do
|
|
184
|
+
params(
|
|
185
|
+
value_node: Psych::Nodes::Scalar,
|
|
186
|
+
content: T::Array[String],
|
|
187
|
+
old_declaration: String,
|
|
188
|
+
new_declaration: String
|
|
189
|
+
).void
|
|
190
|
+
end
|
|
191
|
+
def replace_within_node_span(value_node, content, old_declaration, new_declaration)
|
|
192
|
+
start_line = value_node.start_line
|
|
193
|
+
end_line = value_node.end_line
|
|
194
|
+
|
|
195
|
+
if start_line == end_line
|
|
196
|
+
line = T.must(content[start_line])
|
|
197
|
+
prefix = line[0...value_node.start_column]
|
|
198
|
+
rest = T.must(line[value_node.start_column..])
|
|
199
|
+
content[start_line] = "#{prefix}#{rest.sub(old_declaration, new_declaration)}"
|
|
200
|
+
else
|
|
201
|
+
# block/folded scalar: the declaration text lives on a line after start_line, so
|
|
202
|
+
# search the node's whole line span rather than just the line Psych anchors it to
|
|
203
|
+
segment = T.must(content[start_line..end_line]).join("\n")
|
|
204
|
+
content[start_line..end_line] = segment.sub(old_declaration, new_declaration).split("\n", -1)
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
sig do
|
|
209
|
+
params(
|
|
210
|
+
name: String,
|
|
211
|
+
req: Dependabot::DependencyRequirement,
|
|
212
|
+
tag: String
|
|
213
|
+
).returns(String)
|
|
214
|
+
end
|
|
215
|
+
def scalar_image_declaration(name, req, tag)
|
|
216
|
+
registry = req.source_string("registry")
|
|
217
|
+
# the parser already folds a detected registry into the name itself (e.g. "docker.io/nginx")
|
|
218
|
+
declaration = registry && !name.start_with?("#{registry}/") ? "#{registry}/#{name}" : name
|
|
219
|
+
"#{declaration}:#{tag}"
|
|
220
|
+
end
|
|
136
221
|
end
|
|
137
222
|
end
|
|
138
223
|
end
|
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.395.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.395.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.395.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.395.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.395.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: debug
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -192,19 +192,19 @@ dependencies:
|
|
|
192
192
|
- !ruby/object:Gem::Version
|
|
193
193
|
version: '1.1'
|
|
194
194
|
- !ruby/object:Gem::Dependency
|
|
195
|
-
name:
|
|
195
|
+
name: turbo_tests2
|
|
196
196
|
requirement: !ruby/object:Gem::Requirement
|
|
197
197
|
requirements:
|
|
198
198
|
- - "~>"
|
|
199
199
|
- !ruby/object:Gem::Version
|
|
200
|
-
version:
|
|
200
|
+
version: 3.2.7
|
|
201
201
|
type: :development
|
|
202
202
|
prerelease: false
|
|
203
203
|
version_requirements: !ruby/object:Gem::Requirement
|
|
204
204
|
requirements:
|
|
205
205
|
- - "~>"
|
|
206
206
|
- !ruby/object:Gem::Version
|
|
207
|
-
version:
|
|
207
|
+
version: 3.2.7
|
|
208
208
|
- !ruby/object:Gem::Dependency
|
|
209
209
|
name: vcr
|
|
210
210
|
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.395.0
|
|
279
279
|
rdoc_options: []
|
|
280
280
|
require_paths:
|
|
281
281
|
- lib
|