Skip to content

Commit 97e679f

Browse files
Fix logging to omit 'from' when previous_version is nil
When a dependency is updated from an unpinned version (e.g., `django-cors-headers` without a version constraint) to a pinned version (e.g., `django-cors-headers==4.6.0`), the log now shows "( to 4.6.0 )" instead of "( from to 4.6.0 )". Co-authored-by: AbhishekBhaskar <22154418+AbhishekBhaskar@users.noreply.github.com>
1 parent 14f455f commit 97e679f

File tree

2 files changed

+71
-1
lines changed

2 files changed

+71
-1
lines changed

updater/lib/dependabot/dependency_change.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,11 @@ def pr_message
105105
sig { returns(String) }
106106
def humanized
107107
updated_dependencies.map do |dependency|
108-
"#{dependency.name} ( from #{dependency.humanized_previous_version} to #{dependency.humanized_version} )"
108+
if dependency.humanized_previous_version
109+
"#{dependency.name} ( from #{dependency.humanized_previous_version} to #{dependency.humanized_version} )"
110+
else
111+
"#{dependency.name} ( to #{dependency.humanized_version} )"
112+
end
109113
end.join(", ")
110114
end
111115

updater/spec/dependabot/dependency_change_spec.rb

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,72 @@
266266
end
267267
end
268268

269+
describe "#humanized" do
270+
it "includes from and to versions when previous version exists" do
271+
expect(dependency_change.humanized).to eq("business ( from 1.7.0 to 1.8.0 )")
272+
end
273+
274+
context "when previous_version is nil" do
275+
let(:updated_dependencies) do
276+
[
277+
Dependabot::Dependency.new(
278+
name: "django-cors-headers",
279+
package_manager: "pip",
280+
version: "4.6.0",
281+
previous_version: nil,
282+
requirements: [
283+
{ file: "requirements.txt", requirement: "==4.6.0", groups: [], source: nil }
284+
],
285+
previous_requirements: [
286+
{ file: "requirements.txt", requirement: nil, groups: [], source: nil }
287+
]
288+
)
289+
]
290+
end
291+
292+
it "omits the from version" do
293+
expect(dependency_change.humanized).to eq("django-cors-headers ( to 4.6.0 )")
294+
end
295+
end
296+
297+
context "with multiple dependencies" do
298+
let(:updated_dependencies) do
299+
[
300+
Dependabot::Dependency.new(
301+
name: "business",
302+
package_manager: "bundler",
303+
version: "1.8.0",
304+
previous_version: "1.7.0",
305+
requirements: [
306+
{ file: "Gemfile", requirement: "~> 1.8.0", groups: [], source: nil }
307+
],
308+
previous_requirements: [
309+
{ file: "Gemfile", requirement: "~> 1.7.0", groups: [], source: nil }
310+
]
311+
),
312+
Dependabot::Dependency.new(
313+
name: "redis",
314+
package_manager: "pip",
315+
version: "5.2.0",
316+
previous_version: nil,
317+
requirements: [
318+
{ file: "requirements.txt", requirement: "==5.2.0", groups: [], source: nil }
319+
],
320+
previous_requirements: [
321+
{ file: "requirements.txt", requirement: nil, groups: [], source: nil }
322+
]
323+
)
324+
]
325+
end
326+
327+
it "formats each dependency correctly" do
328+
expect(dependency_change.humanized).to eq(
329+
"business ( from 1.7.0 to 1.8.0 ), redis ( to 5.2.0 )"
330+
)
331+
end
332+
end
333+
end
334+
269335
describe "#grouped_update?" do
270336
it "is false by default" do
271337
expect(dependency_change.grouped_update?).to be false

0 commit comments

Comments
 (0)