dependabot-bundler 0.258.0 → 0.259.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c05e36a108ee23327e96a2d23aa12c70539d40817036e5f06d173145a7bcca22
4
- data.tar.gz: a71ba498133687bec52f73cfa49047526026bbfe9dbe6d1c91b5180613c19c90
3
+ metadata.gz: 1cf058014268b3cfec697930e773369e1f2f1edfe1b4cd6a4c43a33af020a3a6
4
+ data.tar.gz: ef3f4b5ccd9bed22f52b4408d2097ee0709089db43baa21763a8093d684f69ef
5
5
  SHA512:
6
- metadata.gz: 319e8308114b8d774ce11e62d85c1937e71d7f6090f0c53d01af71df2d555cbdd297a0bf02e7da8d26b2a32ca8e696fac79077882d6c7eeb20e822e34d543402
7
- data.tar.gz: c60531c805a0624d8c24a105d91abfc5724482ba1f904bd5f5ea2d428d788bac09204e868daba3896ce67c55221b5319b712341ee1d07bf2555a6427a9d5b26c
6
+ metadata.gz: 1699556eb7cdf17c530f580620f88f14452c750e6ba426dbe192a885a0d029ad054d7304378a482deca2e09d988fee7db8f4ec17719cbadd83ceb89aede7828f
7
+ data.tar.gz: 70e5f1f22cb8ae1025fda30e255222daf55f69a44944217aa640b440759908ba5700f09c8049b5d1fbc82979b9db13d8a783c297408ffb886ffe97ec0708fa78
@@ -36,7 +36,7 @@ RSpec.describe Functions::ConflictingDependencyResolver do
36
36
  )
37
37
  end
38
38
 
39
- context "with nested transitive dependencies" do
39
+ context "when dealing with nested transitive dependencies" do
40
40
  let(:project_name) { "transitive_blocking" }
41
41
  let(:dependency_name) { "activesupport" }
42
42
  let(:target_version) { "6.0.0" }
@@ -47,7 +47,7 @@ RSpec.describe Functions::DependencySource do
47
47
  ])
48
48
  end
49
49
 
50
- context "with specified as the default source" do
50
+ context "when specified as the default source" do
51
51
  let(:project_name) { "specified_default_source_no_lockfile" }
52
52
 
53
53
  it "returns all versions from the private source" do
@@ -59,7 +59,7 @@ RSpec.describe Functions::DependencySource do
59
59
  end
60
60
  end
61
61
 
62
- context "when that we don't have authentication details for" do
62
+ context "when we don't have authentication details for" do
63
63
  before do
64
64
  stub_request(:get, registry_url + "versions")
65
65
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -83,7 +83,7 @@ RSpec.describe Functions::DependencySource do
83
83
  end
84
84
  end
85
85
 
86
- context "when that we have bad authentication details for" do
86
+ context "when we have bad authentication details" do
87
87
  before do
88
88
  stub_request(:get, registry_url + "versions")
89
89
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -107,7 +107,7 @@ RSpec.describe Functions::DependencySource do
107
107
  end
108
108
  end
109
109
 
110
- context "when that bad-requested, but was a private repo" do
110
+ context "when bad-requested, but is a private repo" do
111
111
  before do
112
112
  stub_request(:get, registry_url + "versions")
113
113
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -130,7 +130,7 @@ RSpec.describe Functions::DependencySource do
130
130
  end
131
131
  end
132
132
 
133
- context "when that doesn't have details of the gem" do
133
+ context "when it doesn't have details of the gem" do
134
134
  before do
135
135
  stub_request(:get, gemfury_business_url)
136
136
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -152,7 +152,7 @@ RSpec.describe Functions::DependencySource do
152
152
  it { is_expected.to be_empty }
153
153
  end
154
154
 
155
- context "when that only implements the old Bundler index format..." do
155
+ context "when it only implements the old Bundler index format" do
156
156
  let(:project_name) { "sidekiq_pro" }
157
157
  let(:dependency_name) { "sidekiq-pro" }
158
158
  let(:registry_url) { "https://gems.contribsys.com/" }
@@ -14,14 +14,14 @@ RSpec.describe Functions::FileParser do
14
14
  end
15
15
 
16
16
  describe "#parsed_gemfile" do
17
- let(:project_name) { "gemfile" }
18
-
19
17
  subject(:parsed_gemfile) do
20
18
  in_tmp_folder do
21
19
  dependency_source.parsed_gemfile(gemfile_name: "Gemfile")
22
20
  end
23
21
  end
24
22
 
23
+ let(:project_name) { "gemfile" }
24
+
25
25
  it "parses gemfile" do
26
26
  parsed_gemfile = [
27
27
  {
@@ -44,14 +44,14 @@ RSpec.describe Functions::FileParser do
44
44
  end
45
45
 
46
46
  describe "#parsed_gemspec" do
47
- let(:project_name) { "gemfile_exact" }
48
-
49
47
  subject(:parsed_gemspec) do
50
48
  in_tmp_folder do |_tmp_path|
51
49
  dependency_source.parsed_gemspec(gemspec_name: "example.gemspec")
52
50
  end
53
51
  end
54
52
 
53
+ let(:project_name) { "gemfile_exact" }
54
+
55
55
  it "parses gemspec" do
56
56
  parsed_gemspec = [
57
57
  {
@@ -6,7 +6,7 @@ require "shared_contexts"
6
6
 
7
7
  RSpec.describe Functions::ForceUpdater do
8
8
  include_context "when in a temporary bundler directory"
9
- include_context "when stub rubygems compact index"
9
+ include_context "when stubbing rubygems compact index"
10
10
 
11
11
  let(:force_updater) do
12
12
  described_class.new(
@@ -6,7 +6,7 @@ require "shared_contexts"
6
6
 
7
7
  RSpec.describe Functions::VersionResolver do
8
8
  include_context "when in a temporary bundler directory"
9
- include_context "when stub rubygems compact index"
9
+ include_context "when stubbing rubygems compact index"
10
10
 
11
11
  let(:version_resolver) do
12
12
  described_class.new(
@@ -43,7 +43,7 @@ RSpec.describe Functions::VersionResolver do
43
43
  its([:fetcher]) { is_expected.to eq("Bundler::Fetcher::CompactIndex") }
44
44
 
45
45
  context "with a private gemserver source" do
46
- include_context "when stub rubygems compact index"
46
+ include_context "when stubbing rubygems compact index"
47
47
 
48
48
  let(:project_name) { "specified_source" }
49
49
  let(:requirement_string) { ">= 0" }
@@ -34,7 +34,7 @@ RSpec.shared_context "without caching rubygems" do
34
34
  end
35
35
  end
36
36
 
37
- RSpec.shared_context "when stub rubygems compact index" do
37
+ RSpec.shared_context "when stubbing rubygems compact index" do
38
38
  include_context "without caching rubygems"
39
39
 
40
40
  before do
@@ -0,0 +1,23 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/spec_set"
5
+
6
+ # monkey patch materialized_for_all_platforms for lazy specification issue resolution
7
+ # https://github.com/dependabot/dependabot-core/pull/9807
8
+ module BundlerSpecSetPatch
9
+ def materialized_for_all_platforms
10
+ @specs.map do |s|
11
+ next s unless s.is_a?(Bundler::LazySpecification)
12
+
13
+ s.source.cached!
14
+ s.source.remote!
15
+ spec = s.materialize_for_installation
16
+ raise Bundler::GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec
17
+
18
+ spec
19
+ end
20
+ end
21
+ end
22
+
23
+ Bundler::SpecSet.prepend(BundlerSpecSetPatch)
data/helpers/v2/run.rb CHANGED
@@ -17,6 +17,7 @@ end
17
17
  require "definition_ruby_version_patch"
18
18
  require "definition_bundler_version_patch"
19
19
  require "git_source_patch"
20
+ require "definition_bundler_spec_set_patch"
20
21
 
21
22
  require "functions"
22
23
 
@@ -0,0 +1,68 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ # rubocop:disable RSpec/FilePath
5
+ # rubocop:disable RSpec/SpecFilePathFormat
6
+
7
+ require "native_spec_helper"
8
+ require "shared_contexts"
9
+ require "bundler/spec_set"
10
+
11
+ RSpec.describe Bundler::SpecSet do
12
+ let(:primary_source) { instance_double(Bundler::Source::Git) }
13
+ let(:secondary_source) { instance_double(Bundler::Source::Path) }
14
+ let(:primary_spec_set) do
15
+ instance_double(Bundler::LazySpecification, full_name: "foo-1.0.0-x86_64-linux", source: primary_source)
16
+ end
17
+ let(:secondary_spec_set) do
18
+ instance_double(Bundler::LazySpecification, full_name: "foo-1.0.0-arm64-darwin", source: secondary_source)
19
+ end
20
+
21
+ before do
22
+ allow(primary_spec_set).to receive(:is_a?).with(Bundler::LazySpecification).and_return(true)
23
+ allow(secondary_spec_set).to receive(:is_a?).with(Bundler::LazySpecification).and_return(true)
24
+
25
+ allow(primary_source).to receive(:cached!)
26
+ allow(primary_source).to receive(:remote!)
27
+ allow(secondary_source).to receive(:cached!)
28
+ allow(secondary_source).to receive(:remote!)
29
+
30
+ allow(primary_spec_set).to receive(:materialize_for_installation).and_return(primary_spec_set)
31
+ allow(secondary_spec_set).to receive(:materialize_for_installation).and_return(secondary_spec_set)
32
+ end
33
+
34
+ describe "#materialized_for_all_platforms" do
35
+ context "when cache_all_platforms is enabled" do
36
+ let(:spec_set) { described_class.new([primary_spec_set, secondary_spec_set]) }
37
+
38
+ before do
39
+ described_class.prepend(BundlerSpecSetPatch)
40
+ end
41
+
42
+ it "uses cached gems for secondary sources" do
43
+ expect(primary_spec_set.source).to receive(:cached!).ordered
44
+ expect(primary_spec_set.source).to receive(:remote!).ordered
45
+ expect(primary_spec_set).to receive(:materialize_for_installation).and_return(primary_spec_set).ordered
46
+
47
+ expect(secondary_spec_set.source).to receive(:cached!).ordered
48
+ expect(secondary_spec_set.source).to receive(:remote!).ordered
49
+ expect(secondary_spec_set).to receive(:materialize_for_installation).and_return(secondary_spec_set).ordered
50
+
51
+ result = spec_set.materialized_for_all_platforms
52
+ expect(result).to include(primary_spec_set, secondary_spec_set)
53
+ end
54
+
55
+ it "raises an error if a gem cannot be found in any of the sources" do
56
+ allow(primary_spec_set).to receive(:materialize_for_installation).and_return(nil)
57
+
58
+ expect do
59
+ spec_set.materialized_for_all_platforms
60
+ end.to raise_error(Bundler::GemNotFound,
61
+ "Could not find foo-1.0.0-x86_64-linux in any of the sources")
62
+ end
63
+ end
64
+ end
65
+ end
66
+
67
+ # rubocop:enable RSpec/FilePath
68
+ # rubocop:enable RSpec/SpecFilePathFormat
@@ -36,7 +36,7 @@ RSpec.describe Functions::ConflictingDependencyResolver do
36
36
  )
37
37
  end
38
38
 
39
- context "with nested transitive dependencies" do
39
+ context "when dealing with nested transitive dependencies" do
40
40
  let(:project_name) { "transitive_blocking" }
41
41
  let(:dependency_name) { "activesupport" }
42
42
  let(:target_version) { "6.0.0" }
@@ -47,7 +47,7 @@ RSpec.describe Functions::DependencySource do
47
47
  ])
48
48
  end
49
49
 
50
- context "with specified as the default source" do
50
+ context "when specified as the default source" do
51
51
  let(:project_name) { "specified_default_source_no_lockfile" }
52
52
 
53
53
  it "returns all versions from the private source" do
@@ -59,7 +59,7 @@ RSpec.describe Functions::DependencySource do
59
59
  end
60
60
  end
61
61
 
62
- context "when that we don't have authentication details for" do
62
+ context "when we don't have authentication details" do
63
63
  before do
64
64
  stub_request(:get, registry_url + "versions")
65
65
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -82,7 +82,7 @@ RSpec.describe Functions::DependencySource do
82
82
  end
83
83
  end
84
84
 
85
- context "when that we have bad authentication details for" do
85
+ context "when we have bad authentication details" do
86
86
  before do
87
87
  stub_request(:get, registry_url + "versions")
88
88
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -105,7 +105,7 @@ RSpec.describe Functions::DependencySource do
105
105
  end
106
106
  end
107
107
 
108
- context "when that bad-requested, but was a private repo" do
108
+ context "when there is a bad request but it's a private repo" do
109
109
  before do
110
110
  stub_request(:get, registry_url + "versions")
111
111
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -131,7 +131,7 @@ RSpec.describe Functions::DependencySource do
131
131
  end
132
132
  end
133
133
 
134
- context "when that doesn't have details of the gem" do
134
+ context "when the gem details are not available" do
135
135
  before do
136
136
  stub_request(:get, gemfury_business_url)
137
137
  .with(basic_auth: ["SECRET_CODES", ""])
@@ -153,7 +153,7 @@ RSpec.describe Functions::DependencySource do
153
153
  it { is_expected.to be_empty }
154
154
  end
155
155
 
156
- context "when that only implements the old Bundler index format..." do
156
+ context "when only the old Bundler index format is implemented" do
157
157
  let(:project_name) { "sidekiq_pro" }
158
158
  let(:dependency_name) { "sidekiq-pro" }
159
159
  let(:registry_url) { "https://gems.contribsys.com/" }
@@ -14,14 +14,14 @@ RSpec.describe Functions::FileParser do
14
14
  end
15
15
 
16
16
  describe "#parsed_gemfile" do
17
- let(:project_name) { "gemfile" }
18
-
19
17
  subject(:parsed_gemfile) do
20
18
  in_tmp_folder do
21
19
  dependency_source.parsed_gemfile(gemfile_name: "Gemfile")
22
20
  end
23
21
  end
24
22
 
23
+ let(:project_name) { "gemfile" }
24
+
25
25
  it "parses gemfile" do
26
26
  parsed_gemfile = [
27
27
  {
@@ -109,14 +109,14 @@ RSpec.describe Functions::FileParser do
109
109
  end
110
110
 
111
111
  describe "#parsed_gemspec" do
112
- let(:project_name) { "gemfile_exact" }
113
-
114
112
  subject(:parsed_gemspec) do
115
113
  in_tmp_folder do |_tmp_path|
116
114
  dependency_source.parsed_gemspec(gemspec_name: "example.gemspec")
117
115
  end
118
116
  end
119
117
 
118
+ let(:project_name) { "gemfile_exact" }
119
+
120
120
  it "parses gemspec" do
121
121
  parsed_gemspec = [
122
122
  {
@@ -6,7 +6,7 @@ require "shared_contexts"
6
6
 
7
7
  RSpec.describe Functions::ForceUpdater do
8
8
  include_context "when in a temporary bundler directory"
9
- include_context "when stub rubygems compact index"
9
+ include_context "when stubbing rubygems compact index"
10
10
 
11
11
  let(:force_updater) do
12
12
  described_class.new(
@@ -6,7 +6,7 @@ require "shared_contexts"
6
6
 
7
7
  RSpec.describe Functions::VersionResolver do
8
8
  include_context "when in a temporary bundler directory"
9
- include_context "when stub rubygems compact index"
9
+ include_context "when stubbing rubygems compact index"
10
10
 
11
11
  let(:version_resolver) do
12
12
  described_class.new(
@@ -52,7 +52,7 @@ RSpec.describe Functions::VersionResolver do
52
52
  its([:fetcher]) { is_expected.to eq("Bundler::Fetcher::CompactIndex") }
53
53
 
54
54
  context "with a private gemserver source" do
55
- include_context "when stub rubygems compact index"
55
+ include_context "when stubbing rubygems compact index"
56
56
 
57
57
  let(:project_name) { "specified_source" }
58
58
  let(:requirement_string) { ">= 0" }
@@ -24,7 +24,6 @@ RSpec.describe Functions do
24
24
  end
25
25
 
26
26
  describe "#git_specs" do
27
- let(:project_name) { "git_source" }
28
27
  subject(:git_specs) do
29
28
  in_tmp_folder do
30
29
  Functions.git_specs(
@@ -35,6 +34,8 @@ RSpec.describe Functions do
35
34
  end
36
35
  end
37
36
 
37
+ let(:project_name) { "git_source" }
38
+
38
39
  def expect_specs(count)
39
40
  expect(git_specs.size).to eq(count)
40
41
  git_specs.each do |gs|
@@ -12,6 +12,7 @@ $LOAD_PATH.unshift(File.expand_path("../../spec_helpers", __dir__))
12
12
  # Bundler monkey patches
13
13
  require "definition_ruby_version_patch"
14
14
  require "definition_bundler_version_patch"
15
+ require "definition_bundler_spec_set_patch"
15
16
  require "git_source_patch"
16
17
 
17
18
  require "functions"
@@ -6,13 +6,15 @@ require "shared_contexts"
6
6
 
7
7
  RSpec.describe BundlerDefinitionRubyVersionPatch do
8
8
  include_context "when in a temporary bundler directory"
9
- include_context "when stub rubygems compact index"
9
+ include_context "when stubbing rubygems compact index"
10
10
 
11
11
  let(:project_name) { "ruby_version_implied" }
12
+
12
13
  before do
13
14
  @ui = Bundler.ui
14
15
  Bundler.ui = Bundler::UI::Silent.new
15
16
  end
17
+
16
18
  after { Bundler.ui = @ui }
17
19
 
18
20
  it "updates to the most recent version" do
@@ -27,7 +27,7 @@ RSpec.shared_context "when in a temporary bundler directory" do
27
27
  end
28
28
  end
29
29
 
30
- RSpec.shared_context "when stub rubygems compact index" do
30
+ RSpec.shared_context "when stubbing rubygems compact index" do
31
31
  before do
32
32
  # Stub the Rubygems index
33
33
  stub_request(:get, "https://index.rubygems.org/versions")
@@ -45,6 +45,7 @@ module Dependabot
45
45
  fetched_files += child_gemfiles
46
46
  fetched_files += gemspecs
47
47
  fetched_files << ruby_version_file if ruby_version_file
48
+ fetched_files << tool_versions_file if tool_versions_file
48
49
  fetched_files += path_gemspecs
49
50
  fetched_files += require_relative_files(fetched_files)
50
51
 
@@ -100,9 +101,13 @@ module Dependabot
100
101
  def ruby_version_file
101
102
  return unless gemfile
102
103
 
103
- @ruby_version_file ||=
104
- fetch_file_if_present(".ruby-version")
105
- &.tap { |f| f.support_file = true }
104
+ @ruby_version_file ||= fetch_support_file(".ruby-version")
105
+ end
106
+
107
+ def tool_versions_file
108
+ return unless gemfile
109
+
110
+ @tool_versions_file ||= fetch_support_file(".tool-versions")
106
111
  end
107
112
 
108
113
  def path_gemspecs
@@ -28,6 +28,7 @@ module Dependabot
28
28
  *evaled_gemfiles,
29
29
  lockfile,
30
30
  ruby_version_file,
31
+ tool_versions_file,
31
32
  *imported_ruby_files,
32
33
  *specification_files
33
34
  ].compact
@@ -47,10 +48,10 @@ module Dependabot
47
48
  .reject { |f| f.name.end_with?(".gemspec") }
48
49
  .reject { |f| f.name.end_with?(".specification") }
49
50
  .reject { |f| f.name.end_with?(".lock") }
50
- .reject { |f| f.name.end_with?(".ruby-version") }
51
51
  .reject { |f| f.name == "Gemfile" }
52
52
  .reject { |f| f.name == "gems.rb" }
53
53
  .reject { |f| f.name == "gems.locked" }
54
+ .reject(&:support_file?)
54
55
  end
55
56
 
56
57
  def specification_files
@@ -70,6 +71,10 @@ module Dependabot
70
71
  dependency_files.find { |f| f.name == ".ruby-version" }
71
72
  end
72
73
 
74
+ def tool_versions_file
75
+ dependency_files.find { |f| f.name == ".tool-versions" }
76
+ end
77
+
73
78
  def imported_ruby_files
74
79
  dependency_files
75
80
  .select { |f| f.name.end_with?(".rb") }
@@ -245,10 +245,10 @@ module Dependabot
245
245
  .reject { |f| f.name.end_with?(".gemspec") }
246
246
  .reject { |f| f.name.end_with?(".specification") }
247
247
  .reject { |f| f.name.end_with?(".lock") }
248
- .reject { |f| f.name.end_with?(".ruby-version") }
249
248
  .reject { |f| f.name == "Gemfile" }
250
249
  .reject { |f| f.name == "gems.rb" }
251
250
  .reject { |f| f.name == "gems.locked" }
251
+ .reject(&:support_file?)
252
252
  end
253
253
 
254
254
  def lockfile
@@ -96,6 +96,7 @@ module Dependabot
96
96
 
97
97
  write_gemspecs(top_level_gemspecs)
98
98
  write_ruby_version_file
99
+ write_tool_versions_file
99
100
  write_gemspecs(path_gemspecs)
100
101
  write_specification_files
101
102
  write_imported_ruby_files
@@ -115,6 +116,14 @@ module Dependabot
115
116
  File.write(path, ruby_version_file.content)
116
117
  end
117
118
 
119
+ def write_tool_versions_file
120
+ return unless tool_versions_file
121
+
122
+ path = tool_versions_file.name
123
+ FileUtils.mkdir_p(Pathname.new(path).dirname)
124
+ File.write(path, tool_versions_file.content)
125
+ end
126
+
118
127
  def write_gemspecs(files)
119
128
  files.each do |file|
120
129
  path = file.name
@@ -160,6 +169,10 @@ module Dependabot
160
169
  dependency_files.find { |f| f.name == ".ruby-version" }
161
170
  end
162
171
 
172
+ def tool_versions_file
173
+ dependency_files.find { |f| f.name == ".tool-versions" }
174
+ end
175
+
163
176
  def post_process_lockfile(lockfile_body)
164
177
  lockfile_body = reorder_git_dependencies(lockfile_body)
165
178
  replace_lockfile_ending(lockfile_body)
@@ -269,7 +282,6 @@ module Dependabot
269
282
  .reject { |f| f.name.end_with?(".gemspec") }
270
283
  .reject { |f| f.name.end_with?(".specification") }
271
284
  .reject { |f| f.name.end_with?(".lock") }
272
- .reject { |f| f.name.end_with?(".ruby-version") }
273
285
  .reject { |f| f.name == "Gemfile" }
274
286
  .reject { |f| f.name == "gems.rb" }
275
287
  .reject { |f| f.name == "gems.locked" }
@@ -127,10 +127,10 @@ module Dependabot
127
127
  .reject { |f| f.name.end_with?(".gemspec") }
128
128
  .reject { |f| f.name.end_with?(".specification") }
129
129
  .reject { |f| f.name.end_with?(".lock") }
130
- .reject { |f| f.name.end_with?(".ruby-version") }
131
130
  .reject { |f| f.name == "Gemfile" }
132
131
  .reject { |f| f.name == "gems.rb" }
133
132
  .reject { |f| f.name == "gems.locked" }
133
+ .reject(&:support_file?)
134
134
  end
135
135
 
136
136
  def updated_gemfile_content(file)
@@ -94,6 +94,7 @@ module Dependabot
94
94
  files += [
95
95
  lockfile,
96
96
  ruby_version_file,
97
+ tool_versions_file,
97
98
  *imported_ruby_files,
98
99
  *specification_files
99
100
  ].compact
@@ -130,10 +131,10 @@ module Dependabot
130
131
  .reject { |f| f.name.end_with?(".gemspec") }
131
132
  .reject { |f| f.name.end_with?(".specification") }
132
133
  .reject { |f| f.name.end_with?(".lock") }
133
- .reject { |f| f.name.end_with?(".ruby-version") }
134
134
  .reject { |f| f.name == "Gemfile" }
135
135
  .reject { |f| f.name == "gems.rb" }
136
136
  .reject { |f| f.name == "gems.locked" }
137
+ .reject(&:support_file?)
137
138
  end
138
139
 
139
140
  def lockfile
@@ -154,6 +155,10 @@ module Dependabot
154
155
  dependency_files.find { |f| f.name == ".ruby-version" }
155
156
  end
156
157
 
158
+ def tool_versions_file
159
+ dependency_files.find { |f| f.name == ".tool-versions" }
160
+ end
161
+
157
162
  def path_gemspecs
158
163
  all = dependency_files.select { |f| f.name.end_with?(".gemspec") }
159
164
  all - top_level_gemspecs
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.258.0
4
+ version: 0.259.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-16 00:00:00.000000000 Z
11
+ date: 2024-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dependabot-common
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.258.0
19
+ version: 0.259.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.258.0
26
+ version: 0.259.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: parallel
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -292,10 +292,12 @@ files:
292
292
  - helpers/v2/lib/functions/force_updater.rb
293
293
  - helpers/v2/lib/functions/lockfile_updater.rb
294
294
  - helpers/v2/lib/functions/version_resolver.rb
295
+ - helpers/v2/monkey_patches/definition_bundler_spec_set_patch.rb
295
296
  - helpers/v2/monkey_patches/definition_bundler_version_patch.rb
296
297
  - helpers/v2/monkey_patches/definition_ruby_version_patch.rb
297
298
  - helpers/v2/monkey_patches/git_source_patch.rb
298
299
  - helpers/v2/run.rb
300
+ - helpers/v2/spec/definition_bundler_spec_set_patch_spec.rb
299
301
  - helpers/v2/spec/functions/conflicting_dependency_resolver_spec.rb
300
302
  - helpers/v2/spec/functions/dependency_source_spec.rb
301
303
  - helpers/v2/spec/functions/file_parser_spec.rb
@@ -345,7 +347,7 @@ licenses:
345
347
  - MIT
346
348
  metadata:
347
349
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
348
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.258.0
350
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.259.0
349
351
  post_install_message:
350
352
  rdoc_options: []
351
353
  require_paths: