dependabot-bundler 0.341.0 → 0.342.2
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/bundler/package/package_details_fetcher.rb +52 -8
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '0248fccb7c2e427b91ee21701164b49214161bb83fbefc5aa9c9e42952c568b4'
|
|
4
|
+
data.tar.gz: 26550eae8dd5e1a2d89309a16b51437ec33f213c645ecf8a7636af5c756ac3f4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1dd5441e3f389ecceaf441fd4efcd1eb09a80eae030ee4688c9fec5b3eb820fa5107109cfc88e09a6a8bac581b2f6b457550715e9f26a0a8dd60e29059e1b593
|
|
7
|
+
data.tar.gz: '0693c436743e2fb012bdd559d0af5893c386940920894975a84a731c7aa89d138fab157e3533d7561d68962b9eea2e5ca77452b4f767701f7ee240513bae0db6'
|
|
@@ -138,38 +138,82 @@ module Dependabot
|
|
|
138
138
|
# curl -H "Accept: application/json" \
|
|
139
139
|
# -H "Authorization: Bearer <<TOKEN>>" \
|
|
140
140
|
# https://api.github.com/orgs/dsp-testing/packages/rubygems/json/version
|
|
141
|
+
|
|
142
|
+
validate_and_check_registry(registry_url)
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
sig { params(registry_url: String).returns(Dependabot::Package::PackageDetails) }
|
|
146
|
+
def validate_and_check_registry(registry_url)
|
|
141
147
|
parsed_url = begin
|
|
142
148
|
URI.parse(registry_url)
|
|
143
149
|
rescue URI::InvalidURIError
|
|
144
150
|
raise "Invalid registry URL: #{registry_url}"
|
|
145
151
|
end
|
|
146
152
|
|
|
147
|
-
# Handle GitHub Package Registry
|
|
148
153
|
return github_packages_versions(registry_url) if parsed_url.host == "rubygems.pkg.github.com"
|
|
149
154
|
|
|
155
|
+
fetch_and_process_rubygems_response(registry_url)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
sig { params(registry_url: String).returns(Dependabot::Package::PackageDetails) }
|
|
159
|
+
def fetch_and_process_rubygems_response(registry_url)
|
|
150
160
|
response = registry_json_response_for_dependency(registry_url)
|
|
151
161
|
|
|
152
162
|
unless response.status == 200
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
163
|
+
error_msg = "Failed to fetch versions for '#{dependency.name}' from '#{registry_url}'. " \
|
|
164
|
+
"Status: #{response.status}"
|
|
165
|
+
log_error(error_msg)
|
|
156
166
|
return package_details([])
|
|
157
167
|
end
|
|
158
168
|
|
|
159
|
-
|
|
169
|
+
return handle_empty_response(registry_url) if response.body.nil? || response.body.strip.empty?
|
|
160
170
|
|
|
161
|
-
|
|
162
|
-
|
|
171
|
+
parse_rubygems_response(response, registry_url)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
sig do
|
|
175
|
+
params(response: Excon::Response, registry_url: String)
|
|
176
|
+
.returns(Dependabot::Package::PackageDetails)
|
|
177
|
+
end
|
|
178
|
+
def parse_rubygems_response(response, registry_url)
|
|
179
|
+
parsed_response = JSON.parse(response.body)
|
|
180
|
+
|
|
181
|
+
unless parsed_response.is_a?(Array)
|
|
182
|
+
log_error("Unexpected response format for '#{dependency.name}' from '#{registry_url}'")
|
|
183
|
+
return package_details([])
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
package_releases = parsed_response.map do |release|
|
|
187
|
+
gem_name_with_version = "#{dependency.name}-#{release['number']}"
|
|
163
188
|
package_release(
|
|
164
189
|
version: release["number"],
|
|
165
190
|
released_at: Time.parse(release["created_at"]),
|
|
166
|
-
downloads: release["downloads_count"],
|
|
191
|
+
downloads: release["downloads_count"] || 0,
|
|
167
192
|
url: format(GEM_URL, registry_url, gem_name_with_version),
|
|
168
193
|
ruby_version: release["ruby_version"]
|
|
169
194
|
)
|
|
170
195
|
end
|
|
171
196
|
|
|
172
197
|
package_details(package_releases)
|
|
198
|
+
rescue JSON::ParserError
|
|
199
|
+
log_error("Failed to parse JSON response for '#{dependency.name}' from '#{registry_url}'")
|
|
200
|
+
package_details([])
|
|
201
|
+
rescue StandardError => e
|
|
202
|
+
error_msg = "Unexpected error processing response for '#{dependency.name}' from " \
|
|
203
|
+
"'#{registry_url}': #{e.message}"
|
|
204
|
+
log_error(error_msg)
|
|
205
|
+
package_details([])
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
sig { params(registry_url: String).returns(Dependabot::Package::PackageDetails) }
|
|
209
|
+
def handle_empty_response(registry_url)
|
|
210
|
+
log_error("Empty response body for '#{dependency.name}' from '#{registry_url}'")
|
|
211
|
+
package_details([])
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
sig { params(message: String).void }
|
|
215
|
+
def log_error(message)
|
|
216
|
+
Dependabot.logger.info(message)
|
|
173
217
|
end
|
|
174
218
|
|
|
175
219
|
sig { params(dependency: T.untyped).returns(T.nilable(String)) }
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-bundler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.342.2
|
|
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.
|
|
18
|
+
version: 0.342.2
|
|
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.342.2
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: parallel
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -322,7 +322,7 @@ licenses:
|
|
|
322
322
|
- MIT
|
|
323
323
|
metadata:
|
|
324
324
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
325
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
|
325
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.342.2
|
|
326
326
|
rdoc_options: []
|
|
327
327
|
require_paths:
|
|
328
328
|
- lib
|