Skip to content

Commit 997c096

Browse files
Merge pull request #5934 from dependabot/deivid-rodriguez/update-git-gems-with-eval-gemfile
Fix crash when updating git dependencies
2 parents 7b55c40 + ed661cb commit 997c096

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

bundler/lib/dependabot/bundler/file_updater/gemfile_updater.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def updated_gemfile_content
2929

3030
content = remove_gemfile_git_source(dependency, content) if remove_git_source?(dependency)
3131

32-
content = update_gemfile_git_pin(dependency, gemfile, content) if update_git_pin?(dependency)
32+
content = update_gemfile_git_pin(dependency, gemfile, content) if update_git_pin?(dependency, gemfile)
3333
end
3434

3535
content
@@ -81,10 +81,10 @@ def remove_git_source?(dependency)
8181
new_gemfile_req[:source].nil?
8282
end
8383

84-
def update_git_pin?(dependency)
84+
def update_git_pin?(dependency, file)
8585
new_gemfile_req =
8686
dependency.requirements.
87-
find { |f| GEMFILE_FILENAMES.include?(f[:file]) }
87+
find { |f| f[:file] == file.name }
8888
return false unless new_gemfile_req&.dig(:source, :type) == "git"
8989

9090
# If the new requirement is a git dependency with a ref then there's

bundler/spec/dependabot/bundler/file_updater/gemfile_updater_spec.rb

+14
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,20 @@
306306
end
307307

308308
it { is_expected.to eq(expected_string) }
309+
310+
context "but updating an evaled gemfile including a different git sourced dependency" do
311+
let(:gemfile_body) do
312+
%(gem "dependabot-test-other", git: "https://github.com/dependabot-fixtures/dependabot-other")
313+
end
314+
315+
let(:gemfile) do
316+
Dependabot::DependencyFile.new(content: gemfile_body, name: "Gemfile.included")
317+
end
318+
319+
it "leaves the evaled gemfile untouched" do
320+
is_expected.to eq(gemfile_body)
321+
end
322+
end
309323
end
310324

311325
context "that should be removed" do

0 commit comments

Comments
 (0)