dependabot-helm 0.334.0 → 0.335.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_fetcher.rb +12 -6
- data/lib/dependabot/helm/file_parser.rb +13 -6
- data/lib/dependabot/helm/file_updater/chart_updater.rb +5 -2
- data/lib/dependabot/helm/file_updater/image_updater.rb +6 -2
- data/lib/dependabot/helm/file_updater/lock_file_generator.rb +3 -0
- data/lib/dependabot/helm/file_updater.rb +17 -10
- data/lib/dependabot/helm/package/package_details_fetcher.rb +3 -3
- data/lib/dependabot/helm/update_checker/latest_version_resolver.rb +6 -3
- data/lib/dependabot/helm/update_checker.rb +10 -4
- metadata +14 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ae4b8538e9ae2e182091ffecff1f1d4d0a00e79a375f84866f6a389f3e8e0445
|
|
4
|
+
data.tar.gz: 91fc7a5c4799cf4e0caa1d1af36084a58fb009d52b5f4592c2fb2ef15cd49d8d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: df616e07612b721150e486dbd0e9d5c02926b061aea7b75ea963e54ddb1501c3fa3ef5b8dedae1d06dec5aaa67ac5ad89369ad8bf66971785de7bc59dfedac39
|
|
7
|
+
data.tar.gz: ab7cbc028a048287510a2b67dede114156f82541c6690c4ba7005f81d40c272fc420565ed2c5540c74c5936b918f330cc4b2d3531cc8ba7cf902b29c77ca8ddc
|
|
@@ -28,17 +28,23 @@ module Dependabot
|
|
|
28
28
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
29
29
|
def helm_files
|
|
30
30
|
@helm_files ||=
|
|
31
|
-
T.let(
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
T.let(
|
|
32
|
+
repo_contents(raise_errors: false)
|
|
33
|
+
.select { |f| f.type == "file" && f.name.match?(FILENAME_REGEX) }
|
|
34
|
+
.map { |f| fetch_file_from_host(f.name) },
|
|
35
|
+
T.nilable(T::Array[DependencyFile])
|
|
36
|
+
)
|
|
34
37
|
end
|
|
35
38
|
|
|
36
39
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
37
40
|
def chart_locks
|
|
38
41
|
@chart_locks ||=
|
|
39
|
-
T.let(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
T.let(
|
|
43
|
+
repo_contents(raise_errors: false)
|
|
44
|
+
.select { |f| f.type == "file" && f.name.match?(CHART_LOCK_REGEXP) }
|
|
45
|
+
.map { |f| fetch_file_from_host(f.name) },
|
|
46
|
+
T.nilable(T::Array[DependencyFile])
|
|
47
|
+
)
|
|
42
48
|
end
|
|
43
49
|
|
|
44
50
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
@@ -38,8 +38,11 @@ module Dependabot
|
|
|
38
38
|
private
|
|
39
39
|
|
|
40
40
|
sig do
|
|
41
|
-
params(
|
|
42
|
-
|
|
41
|
+
params(
|
|
42
|
+
yaml: T::Hash[T.untyped, T.untyped],
|
|
43
|
+
chart_file: Dependabot::DependencyFile,
|
|
44
|
+
dependency_set: DependencySet
|
|
45
|
+
).void
|
|
43
46
|
end
|
|
44
47
|
def parse_dependencies(yaml, chart_file, dependency_set)
|
|
45
48
|
yaml["dependencies"].each do |dep|
|
|
@@ -47,12 +50,12 @@ module Dependabot
|
|
|
47
50
|
|
|
48
51
|
parsed_line = {
|
|
49
52
|
"image" => dep["name"],
|
|
50
|
-
"tag" => dep["version"],
|
|
53
|
+
"tag" => dep["version"].to_s,
|
|
51
54
|
"registry" => repository_from_registry(dep["repository"]),
|
|
52
55
|
"digest" => nil
|
|
53
56
|
}
|
|
54
57
|
|
|
55
|
-
dependency = build_dependency(chart_file, parsed_line, dep["version"])
|
|
58
|
+
dependency = build_dependency(chart_file, parsed_line, dep["version"].to_s)
|
|
56
59
|
add_dependency_type_to_dependency(dependency, :helm_chart)
|
|
57
60
|
|
|
58
61
|
dependency_set << dependency
|
|
@@ -126,8 +129,12 @@ module Dependabot
|
|
|
126
129
|
end
|
|
127
130
|
|
|
128
131
|
sig do
|
|
129
|
-
params(
|
|
130
|
-
|
|
132
|
+
params(
|
|
133
|
+
key: String,
|
|
134
|
+
value: String,
|
|
135
|
+
hash: T::Hash[T.untyped, T.untyped],
|
|
136
|
+
current_path: T::Array[String]
|
|
137
|
+
).returns(T::Array[T::Hash[Symbol, String]])
|
|
131
138
|
end
|
|
132
139
|
def handle_string_value(key, value, hash, current_path)
|
|
133
140
|
images = []
|
|
@@ -41,8 +41,11 @@ module Dependabot
|
|
|
41
41
|
attr_reader :dependency
|
|
42
42
|
|
|
43
43
|
sig do
|
|
44
|
-
params(
|
|
45
|
-
|
|
44
|
+
params(
|
|
45
|
+
content: String,
|
|
46
|
+
yaml_obj: T::Hash[T.untyped, T.untyped],
|
|
47
|
+
file: Dependabot::DependencyFile
|
|
48
|
+
).returns(String)
|
|
46
49
|
end
|
|
47
50
|
def update_chart_dependencies(content, yaml_obj, file)
|
|
48
51
|
if update_chart_dependency?(file) && yaml_obj["dependencies"]
|
|
@@ -34,6 +34,7 @@ module Dependabot
|
|
|
34
34
|
|
|
35
35
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
36
36
|
attr_reader :dependency_files
|
|
37
|
+
|
|
37
38
|
sig { returns(Dependabot::Dependency) }
|
|
38
39
|
attr_reader :dependency
|
|
39
40
|
|
|
@@ -107,8 +108,11 @@ module Dependabot
|
|
|
107
108
|
end
|
|
108
109
|
|
|
109
110
|
sig do
|
|
110
|
-
params(
|
|
111
|
-
|
|
111
|
+
params(
|
|
112
|
+
value_node: Psych::Nodes::Mapping,
|
|
113
|
+
content: T::Array[String],
|
|
114
|
+
dependency_version: String
|
|
115
|
+
).returns(T::Array[String])
|
|
112
116
|
end
|
|
113
117
|
def update_version_tags(value_node, content, dependency_version)
|
|
114
118
|
dependency.requirements.each do |req|
|
|
@@ -46,10 +46,13 @@ module Dependabot
|
|
|
46
46
|
|
|
47
47
|
sig { returns(T::Array[Dependabot::Dependency]) }
|
|
48
48
|
attr_reader :dependencies
|
|
49
|
+
|
|
49
50
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
50
51
|
attr_reader :dependency_files
|
|
52
|
+
|
|
51
53
|
sig { returns(String) }
|
|
52
54
|
attr_reader :repo_contents_path
|
|
55
|
+
|
|
53
56
|
sig { returns(T::Array[Dependabot::Credential]) }
|
|
54
57
|
attr_reader :credentials
|
|
55
58
|
|
|
@@ -86,24 +86,31 @@ module Dependabot
|
|
|
86
86
|
|
|
87
87
|
sig { returns(LockFileGenerator) }
|
|
88
88
|
def lockfile_updater
|
|
89
|
-
@lockfile_updater ||= T.let(
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
@lockfile_updater ||= T.let(
|
|
90
|
+
LockFileGenerator.new(
|
|
91
|
+
dependencies: dependencies,
|
|
92
|
+
dependency_files: dependency_files,
|
|
93
|
+
repo_contents_path: T.must(repo_contents_path),
|
|
94
|
+
credentials: credentials
|
|
95
|
+
),
|
|
96
|
+
T.nilable(Dependabot::Helm::FileUpdater::LockFileGenerator)
|
|
97
|
+
)
|
|
95
98
|
end
|
|
96
99
|
|
|
97
100
|
sig { returns(ImageUpdater) }
|
|
98
101
|
def image_updater
|
|
99
|
-
@image_updater ||= T.let(
|
|
100
|
-
|
|
102
|
+
@image_updater ||= T.let(
|
|
103
|
+
ImageUpdater.new(dependency: T.must(dependency), dependency_files: dependency_files),
|
|
104
|
+
T.nilable(Dependabot::Helm::FileUpdater::ImageUpdater)
|
|
105
|
+
)
|
|
101
106
|
end
|
|
102
107
|
|
|
103
108
|
sig { returns(ChartUpdater) }
|
|
104
109
|
def chart_updater
|
|
105
|
-
@chart_updater ||= T.let(
|
|
106
|
-
|
|
110
|
+
@chart_updater ||= T.let(
|
|
111
|
+
ChartUpdater.new(dependency: T.must(dependency)),
|
|
112
|
+
T.nilable(Dependabot::Helm::FileUpdater::ChartUpdater)
|
|
113
|
+
)
|
|
107
114
|
end
|
|
108
115
|
|
|
109
116
|
sig { params(chart_lock: Dependabot::DependencyFile, updated_content: String).returns(String) }
|
|
@@ -67,9 +67,9 @@ module Dependabot
|
|
|
67
67
|
)
|
|
68
68
|
end
|
|
69
69
|
result_lines.sort_by(&:tag).reverse
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
rescue JSON::ParserError => e
|
|
71
|
+
Dependabot.logger.error("Failed to parse JSON response: #{e.message} response body #{response.body}")
|
|
72
|
+
[]
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
sig { params(index_url: T.nilable(String), chart_name: String).returns(T::Array[GitTagWithDetail]) }
|
|
@@ -101,8 +101,10 @@ module Dependabot
|
|
|
101
101
|
version == tag_name
|
|
102
102
|
end
|
|
103
103
|
end
|
|
104
|
-
Dependabot.logger.info(
|
|
105
|
-
|
|
104
|
+
Dependabot.logger.info(
|
|
105
|
+
"Allowed version tags after filtering versions in cooldown:
|
|
106
|
+
#{versions.map(&:to_s).join(', ')}"
|
|
107
|
+
)
|
|
106
108
|
versions
|
|
107
109
|
rescue StandardError => e
|
|
108
110
|
Dependabot.logger.error("Error fetch_tag_and_release_date_helm_chart_index : #{e.message}")
|
|
@@ -172,7 +174,8 @@ module Dependabot
|
|
|
172
174
|
Package::PackageDetailsFetcher.new(
|
|
173
175
|
dependency: dependency,
|
|
174
176
|
credentials: credentials
|
|
175
|
-
),
|
|
177
|
+
),
|
|
178
|
+
T.nilable(Package::PackageDetailsFetcher)
|
|
176
179
|
)
|
|
177
180
|
end
|
|
178
181
|
|
|
@@ -57,8 +57,11 @@ module Dependabot
|
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
sig do
|
|
60
|
-
params(
|
|
61
|
-
|
|
60
|
+
params(
|
|
61
|
+
chart_name: String,
|
|
62
|
+
repo_name: T.nilable(String),
|
|
63
|
+
repo_url: T.nilable(String)
|
|
64
|
+
).returns(T.nilable(Gem::Version))
|
|
62
65
|
end
|
|
63
66
|
def fetch_releases_with_helm_cli(chart_name, repo_name, repo_url)
|
|
64
67
|
Dependabot.logger.info("Attempting to search for #{chart_name} using helm CLI")
|
|
@@ -162,8 +165,11 @@ module Dependabot
|
|
|
162
165
|
end
|
|
163
166
|
|
|
164
167
|
sig do
|
|
165
|
-
params(
|
|
166
|
-
|
|
168
|
+
params(
|
|
169
|
+
chart_name: String,
|
|
170
|
+
repo_name: T.nilable(String),
|
|
171
|
+
repo_url: T.nilable(String)
|
|
172
|
+
).returns(T.nilable(T::Array[T::Hash[String, T.untyped]]))
|
|
167
173
|
end
|
|
168
174
|
def fetch_chart_releases(chart_name, repo_name = nil, repo_url = nil)
|
|
169
175
|
Dependabot.logger.info("Fetching releases for Helm chart: #{chart_name}")
|
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.335.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.335.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.335.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.335.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.335.0
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: debug
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -127,56 +127,56 @@ dependencies:
|
|
|
127
127
|
requirements:
|
|
128
128
|
- - "~>"
|
|
129
129
|
- !ruby/object:Gem::Version
|
|
130
|
-
version: '1.
|
|
130
|
+
version: '1.80'
|
|
131
131
|
type: :development
|
|
132
132
|
prerelease: false
|
|
133
133
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
134
|
requirements:
|
|
135
135
|
- - "~>"
|
|
136
136
|
- !ruby/object:Gem::Version
|
|
137
|
-
version: '1.
|
|
137
|
+
version: '1.80'
|
|
138
138
|
- !ruby/object:Gem::Dependency
|
|
139
139
|
name: rubocop-performance
|
|
140
140
|
requirement: !ruby/object:Gem::Requirement
|
|
141
141
|
requirements:
|
|
142
142
|
- - "~>"
|
|
143
143
|
- !ruby/object:Gem::Version
|
|
144
|
-
version: '1.
|
|
144
|
+
version: '1.26'
|
|
145
145
|
type: :development
|
|
146
146
|
prerelease: false
|
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
|
148
148
|
requirements:
|
|
149
149
|
- - "~>"
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
|
-
version: '1.
|
|
151
|
+
version: '1.26'
|
|
152
152
|
- !ruby/object:Gem::Dependency
|
|
153
153
|
name: rubocop-rspec
|
|
154
154
|
requirement: !ruby/object:Gem::Requirement
|
|
155
155
|
requirements:
|
|
156
156
|
- - "~>"
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: '
|
|
158
|
+
version: '3.7'
|
|
159
159
|
type: :development
|
|
160
160
|
prerelease: false
|
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
|
162
162
|
requirements:
|
|
163
163
|
- - "~>"
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
|
-
version: '
|
|
165
|
+
version: '3.7'
|
|
166
166
|
- !ruby/object:Gem::Dependency
|
|
167
167
|
name: rubocop-sorbet
|
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
|
169
169
|
requirements:
|
|
170
170
|
- - "~>"
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: '0.
|
|
172
|
+
version: '0.10'
|
|
173
173
|
type: :development
|
|
174
174
|
prerelease: false
|
|
175
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
176
|
requirements:
|
|
177
177
|
- - "~>"
|
|
178
178
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: '0.
|
|
179
|
+
version: '0.10'
|
|
180
180
|
- !ruby/object:Gem::Dependency
|
|
181
181
|
name: simplecov
|
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -273,7 +273,7 @@ licenses:
|
|
|
273
273
|
- MIT
|
|
274
274
|
metadata:
|
|
275
275
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
276
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
|
276
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.335.0
|
|
277
277
|
rdoc_options: []
|
|
278
278
|
require_paths:
|
|
279
279
|
- lib
|