dependabot-bundler 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/helpers/v2/lib/functions/force_updater.rb +7 -2
- data/helpers/v2/lib/functions/version_resolver.rb +6 -2
- data/helpers/v2/spec/functions/conflicting_dependency_resolver_spec.rb +64 -52
- data/helpers/v2/spec/functions/dependency_source_spec.rb +14 -10
- data/helpers/v2/spec/functions/version_resolver_spec.rb +4 -2
- data/lib/dependabot/bundler/file_fetcher.rb +12 -6
- data/lib/dependabot/bundler/file_parser.rb +4 -2
- data/lib/dependabot/bundler/file_updater/gemspec_updater.rb +13 -6
- data/lib/dependabot/bundler/file_updater/lockfile_updater.rb +7 -2
- data/lib/dependabot/bundler/file_updater/requirement_replacer.rb +18 -7
- data/lib/dependabot/bundler/metadata_finder.rb +13 -10
- data/lib/dependabot/bundler/package/package_details_fetcher.rb +60 -2
- data/lib/dependabot/bundler/update_checker/file_preparer.rb +12 -6
- data/lib/dependabot/bundler/update_checker/force_updater.rb +10 -4
- data/lib/dependabot/bundler/update_checker/latest_version_finder/dependency_source.rb +6 -4
- data/lib/dependabot/bundler/update_checker/latest_version_finder.rb +4 -2
- data/lib/dependabot/bundler/update_checker/requirements_updater.rb +19 -6
- data/lib/dependabot/bundler/update_checker/version_resolver.rb +14 -7
- data/lib/dependabot/bundler/update_checker.rb +13 -6
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7f69a64ba15ebbad9f9a6b231aafd823c1dfd209eaf6256bcadcec2cf2b4146
|
4
|
+
data.tar.gz: e99f4c6991029f7f44fc0a82c79298e7b57ca5e52e723abcf7e0a29f23635d2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f016dcae6e50e038e723c4edd8181f0f69f8d784b6fb1811362a044dfe878d9addf22b5647869b6d3073275774d915ffb3963a6aea04979378b6119e4ebaf3fb
|
7
|
+
data.tar.gz: 20c66bb7c4d1293f0fb19f3f5ebec61de873f3a21066b6d4ee9935d0bb858151d381c91e2f5979bd727b226fd787de6f1f8fd71b1f9979dfc54a5d9aad124f04
|
@@ -5,8 +5,13 @@ module Functions
|
|
5
5
|
class ForceUpdater
|
6
6
|
class TopLevelDependencyDowngradedError < StandardError; end
|
7
7
|
|
8
|
-
def initialize(
|
9
|
-
|
8
|
+
def initialize(
|
9
|
+
dependency_name:,
|
10
|
+
target_version:,
|
11
|
+
gemfile_name:,
|
12
|
+
lockfile_name:,
|
13
|
+
update_multiple_dependencies:
|
14
|
+
)
|
10
15
|
@dependency_name = dependency_name
|
11
16
|
@target_version = target_version
|
12
17
|
@gemfile_name = gemfile_name
|
@@ -10,8 +10,12 @@ module Functions
|
|
10
10
|
attr_reader :gemfile_name
|
11
11
|
attr_reader :lockfile_name
|
12
12
|
|
13
|
-
def initialize(
|
14
|
-
|
13
|
+
def initialize(
|
14
|
+
dependency_name:,
|
15
|
+
dependency_requirements:,
|
16
|
+
gemfile_name:,
|
17
|
+
lockfile_name:
|
18
|
+
)
|
15
19
|
@dependency_name = dependency_name
|
16
20
|
@dependency_requirements = dependency_requirements
|
17
21
|
@gemfile_name = gemfile_name
|
@@ -42,42 +42,50 @@ RSpec.describe Functions::ConflictingDependencyResolver do
|
|
42
42
|
let(:target_version) { "6.0.0" }
|
43
43
|
|
44
44
|
it "returns a list of dependencies that block the update" do
|
45
|
-
expect(conflicting_dependencies).to contain_exactly(
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
45
|
+
expect(conflicting_dependencies).to contain_exactly(
|
46
|
+
{
|
47
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0)",
|
48
|
+
"name" => "rails",
|
49
|
+
"requirement" => "= 5.2.0",
|
50
|
+
"version" => "5.2.0"
|
51
|
+
},
|
52
|
+
{
|
53
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via actionpack (5.2.0)",
|
54
|
+
"name" => "actionpack",
|
55
|
+
"version" => "5.2.0",
|
56
|
+
"requirement" => "= 5.2.0"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via actionview (5.2.0)",
|
60
|
+
"name" => "actionview",
|
61
|
+
"version" => "5.2.0",
|
62
|
+
"requirement" => "= 5.2.0"
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activejob (5.2.0)",
|
66
|
+
"name" => "activejob",
|
67
|
+
"version" => "5.2.0",
|
68
|
+
"requirement" => "= 5.2.0"
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activemodel (5.2.0)",
|
72
|
+
"name" => "activemodel",
|
73
|
+
"version" => "5.2.0",
|
74
|
+
"requirement" => "= 5.2.0"
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via activerecord (5.2.0)",
|
78
|
+
"name" => "activerecord",
|
79
|
+
"version" => "5.2.0",
|
80
|
+
"requirement" => "= 5.2.0"
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"explanation" => "rails (5.2.0) requires activesupport (= 5.2.0) via railties (5.2.0)",
|
84
|
+
"name" => "railties",
|
85
|
+
"version" => "5.2.0",
|
86
|
+
"requirement" => "= 5.2.0"
|
87
|
+
}
|
88
|
+
)
|
81
89
|
end
|
82
90
|
end
|
83
91
|
|
@@ -88,22 +96,26 @@ RSpec.describe Functions::ConflictingDependencyResolver do
|
|
88
96
|
let(:project_name) { "multiple_blocking" }
|
89
97
|
|
90
98
|
it "returns all of the blocking dependencies" do
|
91
|
-
expect(conflicting_dependencies).to contain_exactly(
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
99
|
+
expect(conflicting_dependencies).to contain_exactly(
|
100
|
+
{
|
101
|
+
"explanation" => "actionmailer (5.0.0) requires activesupport (= 5.0.0) via actionpack (5.0.0)",
|
102
|
+
"name" => "actionpack",
|
103
|
+
"version" => "5.0.0",
|
104
|
+
"requirement" => "= 5.0.0"
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"explanation" => "actionview (5.0.0) requires activesupport (= 5.0.0)",
|
108
|
+
"name" => "actionview",
|
109
|
+
"version" => "5.0.0",
|
110
|
+
"requirement" => "= 5.0.0"
|
111
|
+
},
|
112
|
+
{
|
113
|
+
"explanation" => "actionmailer (5.0.0) requires activesupport (= 5.0.0) via activejob (5.0.0)",
|
114
|
+
"name" => "activejob",
|
115
|
+
"version" => "5.0.0",
|
116
|
+
"requirement" => "= 5.0.0"
|
117
|
+
}
|
118
|
+
)
|
107
119
|
end
|
108
120
|
end
|
109
121
|
|
@@ -40,22 +40,26 @@ RSpec.describe Functions::DependencySource do
|
|
40
40
|
end
|
41
41
|
|
42
42
|
it "returns all versions from the private source" do
|
43
|
-
expect(private_registry_versions).to eq(
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
expect(private_registry_versions).to eq(
|
44
|
+
[
|
45
|
+
Gem::Version.new("1.5.0"),
|
46
|
+
Gem::Version.new("1.9.0"),
|
47
|
+
Gem::Version.new("1.10.0.beta")
|
48
|
+
]
|
49
|
+
)
|
48
50
|
end
|
49
51
|
|
50
52
|
context "when specified as the default source" do
|
51
53
|
let(:project_name) { "specified_default_source_no_lockfile" }
|
52
54
|
|
53
55
|
it "returns all versions from the private source" do
|
54
|
-
expect(private_registry_versions).to eq(
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
56
|
+
expect(private_registry_versions).to eq(
|
57
|
+
[
|
58
|
+
Gem::Version.new("1.5.0"),
|
59
|
+
Gem::Version.new("1.9.0"),
|
60
|
+
Gem::Version.new("1.10.0.beta")
|
61
|
+
]
|
62
|
+
)
|
59
63
|
end
|
60
64
|
end
|
61
65
|
|
@@ -96,8 +96,10 @@ RSpec.describe Functions::VersionResolver do
|
|
96
96
|
stub_request(:get, old_index_url + "?gems=business,statesman")
|
97
97
|
.to_return(
|
98
98
|
status: 200,
|
99
|
-
body: fixture(
|
100
|
-
|
99
|
+
body: fixture(
|
100
|
+
"rubygems_responses",
|
101
|
+
"dependencies-default-gemfile"
|
102
|
+
)
|
101
103
|
)
|
102
104
|
end
|
103
105
|
|
@@ -75,16 +75,20 @@ module Dependabot
|
|
75
75
|
def gemfile
|
76
76
|
return @gemfile if defined?(@gemfile)
|
77
77
|
|
78
|
-
@gemfile = T.let(
|
79
|
-
|
78
|
+
@gemfile = T.let(
|
79
|
+
fetch_file_if_present("gems.rb") || fetch_file_if_present("Gemfile"),
|
80
|
+
T.nilable(Dependabot::DependencyFile)
|
81
|
+
)
|
80
82
|
end
|
81
83
|
|
82
84
|
sig { returns(T.nilable(DependencyFile)) }
|
83
85
|
def lockfile
|
84
86
|
return @lockfile if defined?(@lockfile)
|
85
87
|
|
86
|
-
@lockfile = T.let(
|
87
|
-
|
88
|
+
@lockfile = T.let(
|
89
|
+
fetch_file_if_present("gems.locked") || fetch_file_if_present("Gemfile.lock"),
|
90
|
+
T.nilable(Dependabot::DependencyFile)
|
91
|
+
)
|
88
92
|
end
|
89
93
|
|
90
94
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
@@ -239,8 +243,10 @@ module Dependabot
|
|
239
243
|
end
|
240
244
|
|
241
245
|
sig do
|
242
|
-
params(
|
243
|
-
|
246
|
+
params(
|
247
|
+
file: DependencyFile,
|
248
|
+
previously_fetched_files: T::Array[DependencyFile]
|
249
|
+
).returns(T::Array[DependencyFile])
|
244
250
|
end
|
245
251
|
def fetch_child_gemfiles(file:, previously_fetched_files:)
|
246
252
|
paths = ChildGemfileFinder.new(gemfile: file).child_gemfile_paths
|
@@ -209,8 +209,10 @@ module Dependabot
|
|
209
209
|
sig { returns(T::Array[T::Hash[String, T.untyped]]) }
|
210
210
|
def parsed_gemfile
|
211
211
|
@parsed_gemfile ||= T.let(
|
212
|
-
SharedHelpers.in_a_temporary_repo_directory(
|
213
|
-
|
212
|
+
SharedHelpers.in_a_temporary_repo_directory(
|
213
|
+
T.must(base_directory),
|
214
|
+
repo_contents_path
|
215
|
+
) do
|
214
216
|
write_temporary_dependency_files
|
215
217
|
|
216
218
|
NativeHelpers.run_bundler_subprocess(
|
@@ -39,20 +39,27 @@ module Dependabot
|
|
39
39
|
attr_reader :gemspec
|
40
40
|
|
41
41
|
sig do
|
42
|
-
params(
|
43
|
-
|
42
|
+
params(
|
43
|
+
gemspec: Dependabot::DependencyFile,
|
44
|
+
dependency: Dependabot::Dependency,
|
45
|
+
content: String
|
46
|
+
).returns(String)
|
44
47
|
end
|
45
48
|
def replace_gemspec_version_requirement(gemspec, dependency, content)
|
46
49
|
return content unless requirement_changed?(gemspec, dependency)
|
47
50
|
|
48
51
|
updated_requirement =
|
49
|
-
T.must(
|
50
|
-
|
52
|
+
T.must(
|
53
|
+
dependency.requirements
|
54
|
+
.find { |r| r[:file] == gemspec.name }
|
55
|
+
)
|
51
56
|
.fetch(:requirement)
|
52
57
|
|
53
58
|
previous_requirement =
|
54
|
-
T.must(
|
55
|
-
|
59
|
+
T.must(
|
60
|
+
T.must(dependency.previous_requirements)
|
61
|
+
.find { |r| r[:file] == gemspec.name }
|
62
|
+
)
|
56
63
|
.fetch(:requirement)
|
57
64
|
|
58
65
|
RequirementReplacer.new(
|
@@ -36,8 +36,13 @@ module Dependabot
|
|
36
36
|
repo_contents_path: T.nilable(String)
|
37
37
|
).void
|
38
38
|
end
|
39
|
-
def initialize(
|
40
|
-
|
39
|
+
def initialize(
|
40
|
+
dependencies:,
|
41
|
+
dependency_files:,
|
42
|
+
credentials:,
|
43
|
+
options:,
|
44
|
+
repo_contents_path: nil
|
45
|
+
)
|
41
46
|
@dependencies = T.let(dependencies, T::Array[Dependabot::Dependency])
|
42
47
|
@dependency_files = T.let(dependency_files, T::Array[Dependabot::DependencyFile])
|
43
48
|
@repo_contents_path = T.let(repo_contents_path, T.nilable(String))
|
@@ -33,8 +33,13 @@ module Dependabot
|
|
33
33
|
insert_if_bare: T::Boolean
|
34
34
|
).void
|
35
35
|
end
|
36
|
-
def initialize(
|
37
|
-
|
36
|
+
def initialize(
|
37
|
+
dependency:,
|
38
|
+
file_type:,
|
39
|
+
updated_requirement:,
|
40
|
+
previous_requirement: nil,
|
41
|
+
insert_if_bare: false
|
42
|
+
)
|
38
43
|
@dependency = dependency
|
39
44
|
@file_type = file_type
|
40
45
|
@updated_requirement = updated_requirement
|
@@ -121,8 +126,12 @@ module Dependabot
|
|
121
126
|
insert_if_bare: T::Boolean
|
122
127
|
).void
|
123
128
|
end
|
124
|
-
def initialize(
|
125
|
-
|
129
|
+
def initialize(
|
130
|
+
dependency:,
|
131
|
+
file_type:,
|
132
|
+
updated_requirement:,
|
133
|
+
insert_if_bare:
|
134
|
+
)
|
126
135
|
@dependency = T.let(dependency, Dependabot::Dependency)
|
127
136
|
@file_type = T.let(file_type, Symbol)
|
128
137
|
@updated_requirement = T.let(updated_requirement, String)
|
@@ -250,9 +259,11 @@ module Dependabot
|
|
250
259
|
use_equality_operator: T::Boolean
|
251
260
|
).returns(String)
|
252
261
|
end
|
253
|
-
def new_requirement_string(
|
254
|
-
|
255
|
-
|
262
|
+
def new_requirement_string(
|
263
|
+
quote_characters:,
|
264
|
+
space_after_specifier:,
|
265
|
+
use_equality_operator:
|
266
|
+
)
|
256
267
|
open_quote, close_quote = quote_characters
|
257
268
|
new_requirement_string =
|
258
269
|
updated_requirement.split(",")
|
@@ -11,16 +11,19 @@ module Dependabot
|
|
11
11
|
class MetadataFinder < Dependabot::MetadataFinders::Base
|
12
12
|
extend T::Sig
|
13
13
|
|
14
|
-
SOURCE_KEYS = T.let(
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
SOURCE_KEYS = T.let(
|
15
|
+
%w(
|
16
|
+
source_code_uri
|
17
|
+
homepage_uri
|
18
|
+
wiki_uri
|
19
|
+
bug_tracker_uri
|
20
|
+
documentation_uri
|
21
|
+
changelog_uri
|
22
|
+
mailing_list_uri
|
23
|
+
download_uri
|
24
|
+
).freeze,
|
25
|
+
T::Array[String]
|
26
|
+
)
|
24
27
|
|
25
28
|
sig do
|
26
29
|
params(
|
@@ -143,7 +143,9 @@ module Dependabot
|
|
143
143
|
rescue URI::InvalidURIError
|
144
144
|
raise "Invalid registry URL: #{registry_url}"
|
145
145
|
end
|
146
|
-
|
146
|
+
|
147
|
+
# Handle GitHub Package Registry
|
148
|
+
return github_packages_versions(registry_url) if parsed_url.host == "rubygems.pkg.github.com"
|
147
149
|
|
148
150
|
response = registry_json_response_for_dependency(registry_url)
|
149
151
|
|
@@ -193,6 +195,61 @@ module Dependabot
|
|
193
195
|
)
|
194
196
|
end
|
195
197
|
|
198
|
+
sig { params(registry_url: String).returns(Dependabot::Package::PackageDetails) }
|
199
|
+
def github_packages_versions(registry_url)
|
200
|
+
# Extract org name from URL like "https://rubygems.pkg.github.com/dsp-testing/"
|
201
|
+
org_name = registry_url.split("/").last
|
202
|
+
|
203
|
+
# GitHub Packages API endpoint for RubyGems packages
|
204
|
+
api_url = "https://api.github.com/orgs/#{org_name}/packages/rubygems/#{dependency.name}/versions"
|
205
|
+
|
206
|
+
response = Dependabot::RegistryClient.get(
|
207
|
+
url: api_url,
|
208
|
+
headers: {
|
209
|
+
"Accept" => "application/vnd.github.v3+json",
|
210
|
+
"Authorization" => "Bearer #{github_token}"
|
211
|
+
}
|
212
|
+
)
|
213
|
+
|
214
|
+
unless response.status == 200
|
215
|
+
error_details = "Status: #{response.status}"
|
216
|
+
error_details += " (Package not found in GitHub Registry)" if response.status == 404
|
217
|
+
error_message = "Failed to fetch versions for '#{dependency.name}' from GitHub Packages. #{error_details}"
|
218
|
+
Dependabot.logger.info(error_message)
|
219
|
+
return package_details([])
|
220
|
+
end
|
221
|
+
|
222
|
+
begin
|
223
|
+
versions_data = JSON.parse(response.body)
|
224
|
+
package_releases = versions_data.map do |version_info|
|
225
|
+
# GitHub Packages API returns different structure than RubyGems
|
226
|
+
version_number = version_info["name"] # GitHub uses "name" for version
|
227
|
+
created_at = version_info["created_at"]
|
228
|
+
|
229
|
+
package_release(
|
230
|
+
version: version_number,
|
231
|
+
released_at: Time.parse(created_at),
|
232
|
+
downloads: 0, # GitHub Packages doesn't provide download counts
|
233
|
+
url: "#{registry_url}/gems/#{dependency.name}-#{version_number}.gem",
|
234
|
+
ruby_version: nil # GitHub Packages API doesn't provide ruby version requirements
|
235
|
+
)
|
236
|
+
end
|
237
|
+
|
238
|
+
package_details(package_releases)
|
239
|
+
rescue JSON::ParserError => e
|
240
|
+
Dependabot.logger.info("Failed to parse GitHub Packages response: #{e.message}")
|
241
|
+
package_details([])
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
sig { returns(T.nilable(String)) }
|
246
|
+
def github_token
|
247
|
+
github_credential = credentials.find do |cred|
|
248
|
+
cred["type"] == "rubygems_server" && cred["host"] == "rubygems.pkg.github.com"
|
249
|
+
end
|
250
|
+
github_credential&.fetch("token", nil)
|
251
|
+
end
|
252
|
+
|
196
253
|
sig { params(req_string: String).returns(Requirement) }
|
197
254
|
def language_requirement(req_string)
|
198
255
|
Requirement.new(req_string)
|
@@ -222,7 +279,8 @@ module Dependabot
|
|
222
279
|
Dependabot::Package::PackageDetails.new(
|
223
280
|
dependency: dependency,
|
224
281
|
releases: releases.reverse.uniq(&:version)
|
225
|
-
),
|
282
|
+
),
|
283
|
+
T.nilable(Dependabot::Package::PackageDetails)
|
226
284
|
)
|
227
285
|
end
|
228
286
|
|
@@ -53,12 +53,15 @@ module Dependabot
|
|
53
53
|
lock_ruby_version: T::Boolean
|
54
54
|
).void
|
55
55
|
end
|
56
|
-
def initialize(
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
56
|
+
def initialize(
|
57
|
+
dependency_files:,
|
58
|
+
dependency:,
|
59
|
+
remove_git_source: false,
|
60
|
+
unlock_requirement: true,
|
61
|
+
replacement_git_pin: nil,
|
62
|
+
latest_allowable_version: nil,
|
63
|
+
lock_ruby_version: true
|
64
|
+
)
|
62
65
|
@dependency_files = T.let(dependency_files, T::Array[Dependabot::DependencyFile])
|
63
66
|
@dependency = T.let(dependency, Dependabot::Dependency)
|
64
67
|
@remove_git_source = T.let(remove_git_source, T::Boolean)
|
@@ -127,10 +130,13 @@ module Dependabot
|
|
127
130
|
|
128
131
|
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
129
132
|
attr_reader :dependency_files
|
133
|
+
|
130
134
|
sig { returns(Dependabot::Dependency) }
|
131
135
|
attr_reader :dependency
|
136
|
+
|
132
137
|
sig { returns(T.nilable(String)) }
|
133
138
|
attr_reader :replacement_git_pin
|
139
|
+
|
134
140
|
sig { returns(T.nilable(String)) }
|
135
141
|
attr_reader :latest_allowable_version
|
136
142
|
|
@@ -33,10 +33,16 @@ module Dependabot
|
|
33
33
|
update_multiple_dependencies: T::Boolean
|
34
34
|
).void
|
35
35
|
end
|
36
|
-
def initialize(
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
def initialize(
|
37
|
+
dependency:,
|
38
|
+
dependency_files:,
|
39
|
+
credentials:,
|
40
|
+
target_version:,
|
41
|
+
requirements_update_strategy:,
|
42
|
+
options:,
|
43
|
+
repo_contents_path: nil,
|
44
|
+
update_multiple_dependencies: true
|
45
|
+
)
|
40
46
|
@dependency = dependency
|
41
47
|
@dependency_files = dependency_files
|
42
48
|
@repo_contents_path = repo_contents_path
|
@@ -46,10 +46,12 @@ module Dependabot
|
|
46
46
|
options: T::Hash[Symbol, T.untyped]
|
47
47
|
).void
|
48
48
|
end
|
49
|
-
def initialize(
|
50
|
-
|
51
|
-
|
52
|
-
|
49
|
+
def initialize(
|
50
|
+
dependency:,
|
51
|
+
dependency_files:,
|
52
|
+
credentials:,
|
53
|
+
options:
|
54
|
+
)
|
53
55
|
@dependency = dependency
|
54
56
|
@dependency_files = dependency_files
|
55
57
|
@repo_contents_path = T.let(nil, T.nilable(String))
|
@@ -125,7 +125,8 @@ module Dependabot
|
|
125
125
|
current_version&.prerelease? || dependency.requirements.any? do |req|
|
126
126
|
req[:requirement].match?(/[a-z]/i)
|
127
127
|
end
|
128
|
-
end,
|
128
|
+
end,
|
129
|
+
T.nilable(T::Boolean)
|
129
130
|
)
|
130
131
|
end
|
131
132
|
|
@@ -137,7 +138,8 @@ module Dependabot
|
|
137
138
|
dependency_files: dependency_files,
|
138
139
|
credentials: credentials,
|
139
140
|
options: options
|
140
|
-
),
|
141
|
+
),
|
142
|
+
T.nilable(DependencySource)
|
141
143
|
)
|
142
144
|
end
|
143
145
|
end
|
@@ -32,8 +32,13 @@ module Dependabot
|
|
32
32
|
latest_resolvable_version: T.nilable(String)
|
33
33
|
).void
|
34
34
|
end
|
35
|
-
def initialize(
|
36
|
-
|
35
|
+
def initialize(
|
36
|
+
requirements:,
|
37
|
+
update_strategy:,
|
38
|
+
updated_source:,
|
39
|
+
latest_version:,
|
40
|
+
latest_resolvable_version:
|
41
|
+
)
|
37
42
|
@requirements = requirements
|
38
43
|
@latest_version = T.let(
|
39
44
|
(T.cast(Dependabot::Bundler::Version.new(latest_version), Dependabot::Bundler::Version) if latest_version),
|
@@ -71,12 +76,16 @@ module Dependabot
|
|
71
76
|
|
72
77
|
sig { returns(T::Array[T::Hash[Symbol, T.untyped]]) }
|
73
78
|
attr_reader :requirements
|
79
|
+
|
74
80
|
sig { returns(T.nilable(T::Hash[Symbol, T.untyped])) }
|
75
81
|
attr_reader :updated_source
|
82
|
+
|
76
83
|
sig { returns(T.nilable(Dependabot::Bundler::Version)) }
|
77
84
|
attr_reader :latest_version
|
85
|
+
|
78
86
|
sig { returns(T.nilable(Dependabot::Bundler::Version)) }
|
79
87
|
attr_reader :latest_resolvable_version
|
88
|
+
|
80
89
|
sig { returns(Dependabot::RequirementsUpdateStrategy) }
|
81
90
|
attr_reader :update_strategy
|
82
91
|
|
@@ -302,8 +311,10 @@ module Dependabot
|
|
302
311
|
|
303
312
|
# Updates the version in a "~>" constraint to allow the given version
|
304
313
|
sig do
|
305
|
-
params(
|
306
|
-
|
314
|
+
params(
|
315
|
+
requirement: Gem::Requirement,
|
316
|
+
version_to_be_permitted: Dependabot::Bundler::Version
|
317
|
+
).returns(Gem::Requirement)
|
307
318
|
end
|
308
319
|
def update_twiddle_version(requirement, version_to_be_permitted)
|
309
320
|
old_version = requirement.requirements.first.last
|
@@ -314,8 +325,10 @@ module Dependabot
|
|
314
325
|
# Updates the version in a "<" or "<=" constraint to allow the given
|
315
326
|
# version
|
316
327
|
sig do
|
317
|
-
params(
|
318
|
-
|
328
|
+
params(
|
329
|
+
requirement: Gem::Requirement,
|
330
|
+
version_to_be_permitted: Dependabot::Bundler::Version
|
331
|
+
).returns(Gem::Requirement)
|
319
332
|
end
|
320
333
|
def update_greatest_version(requirement, version_to_be_permitted)
|
321
334
|
op, version = requirement.requirements.first
|
@@ -39,13 +39,20 @@ module Dependabot
|
|
39
39
|
cooldown_options: T.nilable(Dependabot::Package::ReleaseCooldownOptions)
|
40
40
|
).void
|
41
41
|
end
|
42
|
-
def initialize(
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
42
|
+
def initialize(
|
43
|
+
dependency:,
|
44
|
+
unprepared_dependency_files:,
|
45
|
+
credentials:,
|
46
|
+
ignored_versions:,
|
47
|
+
options:,
|
48
|
+
repo_contents_path: nil,
|
49
|
+
raise_on_ignored: false,
|
50
|
+
replacement_git_pin: nil,
|
51
|
+
remove_git_source: false,
|
52
|
+
unlock_requirement: true,
|
53
|
+
latest_allowable_version: nil,
|
54
|
+
cooldown_options: nil
|
55
|
+
)
|
49
56
|
@dependency = dependency
|
50
57
|
@unprepared_dependency_files = unprepared_dependency_files
|
51
58
|
@credentials = credentials
|
@@ -354,8 +354,10 @@ module Dependabot
|
|
354
354
|
sig { returns(Dependabot::Bundler::UpdateChecker::ForceUpdater) }
|
355
355
|
def force_updater
|
356
356
|
if @force_updater.nil?
|
357
|
-
@force_updater = T.let(
|
358
|
-
|
357
|
+
@force_updater = T.let(
|
358
|
+
@force_updater,
|
359
|
+
T.nilable(Dependabot::Bundler::UpdateChecker::ForceUpdater)
|
360
|
+
)
|
359
361
|
end
|
360
362
|
@force_updater ||=
|
361
363
|
ForceUpdater.new(
|
@@ -372,8 +374,10 @@ module Dependabot
|
|
372
374
|
sig { returns(Dependabot::GitCommitChecker) }
|
373
375
|
def git_commit_checker
|
374
376
|
if @git_commit_checker.nil?
|
375
|
-
@git_commit_checker = T.let(
|
376
|
-
|
377
|
+
@git_commit_checker = T.let(
|
378
|
+
@git_commit_checker,
|
379
|
+
T.nilable(Dependabot::GitCommitChecker)
|
380
|
+
)
|
377
381
|
end
|
378
382
|
@git_commit_checker ||=
|
379
383
|
GitCommitChecker.new(
|
@@ -432,8 +436,11 @@ module Dependabot
|
|
432
436
|
latest_allowable_version: T.nilable(T.any(String, Dependabot::Bundler::Version))
|
433
437
|
).returns(T::Array[Dependabot::DependencyFile])
|
434
438
|
end
|
435
|
-
def prepared_dependency_files(
|
436
|
-
|
439
|
+
def prepared_dependency_files(
|
440
|
+
remove_git_source:,
|
441
|
+
unlock_requirement:,
|
442
|
+
latest_allowable_version: nil
|
443
|
+
)
|
437
444
|
FilePreparer.new(
|
438
445
|
dependency: dependency,
|
439
446
|
dependency_files: dependency_files,
|
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.335.0
|
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.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: parallel
|
28
28
|
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
|
@@ -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.335.0
|
326
326
|
rdoc_options: []
|
327
327
|
require_paths:
|
328
328
|
- lib
|