dependabot-composer 0.391.0 → 0.392.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cafb57b046f1164755a998a31aa72aba68c3aea1bac24495f6f8118dc629c591
4
- data.tar.gz: b1e4d87a77c309bfcf68a3de9815ba0f0aafbd7f464c16359d06b3810f8a22e4
3
+ metadata.gz: 90874526a1c8b9f36669040be08ce71794578d3844f3d0aa97fe80e831ee5b4b
4
+ data.tar.gz: d940cd0bef070dac30dc9a4f54a88e9a10601fc9a4cb5711dd0667b466bacdb6
5
5
  SHA512:
6
- metadata.gz: d853e55644fa3a6ea0ad5e87b8cfa030f9e377a093479dcabca223ee925e7fc19b78c6eefced487b551cb3daf336c1c246eedea9dbdc36818ac6c1d65146cf7b
7
- data.tar.gz: 4e44a6f2b7190d21ccca3fd7ab29eb0ab7775d98beb73f131bb766c99ece304e410a8cb27d94c9312ff1edecdfbb130036bdc7115a90134a970de5e67c9b0d8d
6
+ metadata.gz: e044682e96915f3f126ebf844a71e7c150398a518660fa771003ecc196c52836d35c4b77736dbe7aa0813a062d181d05ca0e4c091ac87af2859b75605d2c9ed2
7
+ data.tar.gz: b7e61669d528f52aecdf68e17a668163863d4d0e013632c7a354848d28c972a9a3817d56aa4f5d86c836d361f9dc6ed2c38f8e24e6f0d0725e2d69f53bc785a8
@@ -2684,11 +2684,11 @@
2684
2684
  },
2685
2685
  {
2686
2686
  "name": "phpstan/phpstan",
2687
- "version": "2.2.7",
2687
+ "version": "2.2.8",
2688
2688
  "dist": {
2689
2689
  "type": "zip",
2690
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/692db47b9dddb0487934e5236e77d48594aef921",
2691
- "reference": "692db47b9dddb0487934e5236e77d48594aef921",
2690
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e285254e60f33c21902efef4a926ca0987c06804",
2691
+ "reference": "e285254e60f33c21902efef4a926ca0987c06804",
2692
2692
  "shasum": ""
2693
2693
  },
2694
2694
  "require": {
@@ -2744,7 +2744,7 @@
2744
2744
  "type": "github"
2745
2745
  }
2746
2746
  ],
2747
- "time": "2026-07-29T17:39:32+00:00"
2747
+ "time": "2026-08-04T22:21:45+00:00"
2748
2748
  },
2749
2749
  {
2750
2750
  "name": "psr/event-dispatcher",
@@ -320,8 +320,8 @@ module Dependabot
320
320
  next content unless Composer::Version.correct?(updated_req)
321
321
 
322
322
  old_req =
323
- dep.requirements.find { |r| r[:file] == PackageManager::MANIFEST_FILENAME }
324
- &.fetch(:requirement)
323
+ dep.requirements.find { |r| r.file == PackageManager::MANIFEST_FILENAME }
324
+ &.requirement_string
325
325
 
326
326
  # When updating a subdep there won't be an old requirement
327
327
  next content unless old_req
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
@@ -23,8 +23,8 @@ module Dependabot
23
23
  dependencies.reduce(manifest.content.dup) do |content, dep|
24
24
  updated_content = content
25
25
  updated_requirements(dep).each do |new_req|
26
- old_req = old_requirement(dep, new_req)&.fetch(:requirement)
27
- updated_req = new_req.fetch(:requirement)
26
+ old_req = T.must(old_requirement(dep, new_req)&.requirement_string)
27
+ updated_req = T.must(new_req.requirement_string)
28
28
 
29
29
  regex =
30
30
  /
@@ -54,20 +54,20 @@ module Dependabot
54
54
 
55
55
  sig { params(dependency: Dependabot::Dependency).returns(T::Array[Dependabot::DependencyRequirement]) }
56
56
  def new_requirements(dependency)
57
- dependency.requirements.select { |r| r[:file] == manifest.name }
57
+ dependency.requirements.select { |r| r.file == manifest.name }
58
58
  end
59
59
 
60
60
  sig do
61
61
  params(
62
62
  dependency: Dependabot::Dependency,
63
- new_requirement: T::Hash[Symbol, T.untyped]
63
+ new_requirement: Dependabot::DependencyRequirement
64
64
  )
65
- .returns(T.nilable(T::Hash[Symbol, T.untyped]))
65
+ .returns(T.nilable(Dependabot::DependencyRequirement))
66
66
  end
67
67
  def old_requirement(dependency, new_requirement)
68
68
  T.must(dependency.previous_requirements)
69
- .select { |r| r[:file] == manifest.name }
70
- .find { |r| r[:groups] == new_requirement[:groups] }
69
+ .select { |r| r.file == manifest.name }
70
+ .find { |r| r.groups == new_requirement.groups }
71
71
  end
72
72
 
73
73
  sig { params(dependency: Dependabot::Dependency).returns(T::Array[Dependabot::DependencyRequirement]) }
@@ -81,7 +81,7 @@ module Dependabot
81
81
  changed_requirements =
82
82
  dependency.requirements - T.must(dependency.previous_requirements)
83
83
 
84
- changed_requirements.any? { |f| f[:file] == file.name }
84
+ changed_requirements.any? { |requirement| requirement.file == file.name }
85
85
  end
86
86
  end
87
87
  end
@@ -36,12 +36,7 @@ module Dependabot
36
36
 
37
37
  sig { returns(T.nilable(Source)) }
38
38
  def source_from_dependency
39
- source_url =
40
- dependency.requirements
41
- .filter_map { |r| r.fetch(:source) }
42
- .first&.fetch(:url, nil)
43
-
44
- Source.from_url(source_url)
39
+ Source.from_url(dependency.source_string("url"))
45
40
  end
46
41
 
47
42
  sig { returns(T.nilable(Source)) }
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "excon"
@@ -74,7 +74,7 @@ module Dependabot
74
74
  return true if current_version&.prerelease?
75
75
 
76
76
  dependency.requirements.any? do |req|
77
- req[:requirement].match?(/\d-[A-Za-z]/)
77
+ req.requirement_string&.match?(/\d-[A-Za-z]/)
78
78
  end
79
79
  end
80
80
 
@@ -11,6 +11,7 @@ require "sorbet-runtime"
11
11
  require "dependabot/composer/requirement"
12
12
  require "dependabot/composer/update_checker"
13
13
  require "dependabot/composer/version"
14
+ require "dependabot/dependency_requirement"
14
15
  require "dependabot/requirements_update_strategy"
15
16
 
16
17
  module Dependabot
@@ -36,7 +37,7 @@ module Dependabot
36
37
 
37
38
  sig do
38
39
  params(
39
- requirements: T::Array[T::Hash[Symbol, String]],
40
+ requirements: T::Array[Dependabot::DependencyRequirement],
40
41
  update_strategy: Dependabot::RequirementsUpdateStrategy,
41
42
  latest_resolvable_version: T.nilable(T.any(String, Composer::Version))
42
43
  ).void
@@ -46,7 +47,10 @@ module Dependabot
46
47
  update_strategy:,
47
48
  latest_resolvable_version:
48
49
  )
49
- @requirements = requirements
50
+ @requirements = T.let(
51
+ requirements.map { |requirement| Dependabot::DependencyRequirement.create(requirement) },
52
+ T::Array[Dependabot::DependencyRequirement]
53
+ )
50
54
  @update_strategy = update_strategy
51
55
 
52
56
  check_update_strategy
@@ -59,7 +63,7 @@ module Dependabot
59
63
  )
60
64
  end
61
65
 
62
- sig { returns(T::Array[T::Hash[Symbol, String]]) }
66
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
63
67
  def updated_requirements
64
68
  return requirements if update_strategy.lockfile_only?
65
69
  return requirements unless latest_resolvable_version
@@ -69,7 +73,7 @@ module Dependabot
69
73
 
70
74
  private
71
75
 
72
- sig { returns(T::Array[T::Hash[Symbol, String]]) }
76
+ sig { returns(T::Array[Dependabot::DependencyRequirement]) }
73
77
  attr_reader :requirements
74
78
 
75
79
  sig { returns(Dependabot::RequirementsUpdateStrategy) }
@@ -85,9 +89,12 @@ module Dependabot
85
89
  raise "Unknown update strategy: #{update_strategy}"
86
90
  end
87
91
 
88
- sig { params(req: T::Hash[Symbol, String]).returns(T::Hash[Symbol, String]) }
92
+ sig do
93
+ params(req: Dependabot::DependencyRequirement)
94
+ .returns(Dependabot::DependencyRequirement)
95
+ end
89
96
  def updated_requirement(req)
90
- req_string = T.must(req[:requirement]).strip
97
+ req_string = T.must(req.requirement_string).strip
91
98
  or_string_reqs = req_string.split(OR_SEPARATOR)
92
99
  or_separator = req_string.match(OR_SEPARATOR)&.to_s || " || "
93
100
  branch_or_string_reqs, numeric_or_string_reqs = or_string_reqs
@@ -110,12 +117,16 @@ module Dependabot
110
117
  # Add a T.must for new_req as it's defined in the case statement with multiple options
111
118
  new_req = T.must(new_req)
112
119
  new_req_string =
113
- [new_req[:requirement], *branch_or_string_reqs].join(or_separator)
114
- new_req.merge(requirement: new_req_string)
120
+ [T.must(new_req.requirement_string), *branch_or_string_reqs].join(or_separator)
121
+ Dependabot::DependencyRequirement.create(new_req.merge(requirement: new_req_string))
122
+ end
123
+
124
+ sig do
125
+ params(req: Dependabot::DependencyRequirement)
126
+ .returns(Dependabot::DependencyRequirement)
115
127
  end
116
- sig { params(req: T::Hash[Symbol, String]).returns(T::Hash[Symbol, String]) }
117
128
  def updated_alias(req)
118
- req_string = T.must(req[:requirement])
129
+ req_string = T.must(req.requirement_string)
119
130
  parts = req_string.split(/\sas\s/)
120
131
  real_version = T.must(parts.first).strip
121
132
 
@@ -125,13 +136,16 @@ module Dependabot
125
136
 
126
137
  new_version_string = T.must(latest_resolvable_version).to_s
127
138
  new_req = req_string.sub(real_version, new_version_string)
128
- req.merge(requirement: new_req)
139
+ Dependabot::DependencyRequirement.create(req.merge(requirement: new_req))
129
140
  end
130
141
 
131
142
  # rubocop:disable Metrics/PerceivedComplexity
132
- sig { params(req: T::Hash[Symbol, String], or_separator: String).returns(T::Hash[Symbol, String]) }
143
+ sig do
144
+ params(req: Dependabot::DependencyRequirement, or_separator: String)
145
+ .returns(Dependabot::DependencyRequirement)
146
+ end
133
147
  def widen_requirement(req, or_separator)
134
- current_requirement = T.must(req[:requirement])
148
+ current_requirement = T.must(req.requirement_string)
135
149
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
136
150
 
137
151
  updated_requirement =
@@ -147,13 +161,16 @@ module Dependabot
147
161
  update_version_string(current_requirement)
148
162
  end
149
163
 
150
- req.merge(requirement: updated_requirement)
164
+ Dependabot::DependencyRequirement.create(req.merge(requirement: updated_requirement))
151
165
  end
152
166
  # rubocop:enable Metrics/PerceivedComplexity
153
167
 
154
- sig { params(req: T::Hash[Symbol, String], or_separator: String).returns(T::Hash[Symbol, String]) }
168
+ sig do
169
+ params(req: Dependabot::DependencyRequirement, or_separator: String)
170
+ .returns(Dependabot::DependencyRequirement)
171
+ end
155
172
  def update_requirement_version(req, or_separator)
156
- current_requirement = T.must(req[:requirement])
173
+ current_requirement = T.must(req.requirement_string)
157
174
  reqs = current_requirement.strip.split(SEPARATOR).map(&:strip)
158
175
 
159
176
  updated_requirement =
@@ -167,7 +184,7 @@ module Dependabot
167
184
  update_version_string(current_requirement)
168
185
  end
169
186
 
170
- req.merge(requirement: updated_requirement)
187
+ Dependabot::DependencyRequirement.create(req.merge(requirement: updated_requirement))
171
188
  end
172
189
 
173
190
  sig { params(requirement_string: String).returns(T::Boolean) }
@@ -265,22 +265,22 @@ module Dependabot
265
265
  end
266
266
 
267
267
  # rubocop:disable Metrics/PerceivedComplexity
268
- # rubocop:disable Metrics/AbcSize
269
268
  sig { returns(String) }
270
269
  def updated_version_requirement_string
271
270
  lower_bound =
272
271
  if requirements_to_unlock == :none
273
- dependency.requirements.first&.fetch(:requirement) || ">= 0"
272
+ dependency.requirements.first&.requirement_string || ">= 0"
274
273
  elsif dependency.version
275
274
  ">= #{dependency.version}"
276
275
  else
277
276
  version_for_requirement =
278
- dependency.requirements.filter_map { |r| r[:requirement] }
279
- .reject { |req_string| req_string.start_with?("<") }
280
- .select { |req_string| req_string.match?(VERSION_REGEX) }
281
- .map { |req_string| req_string.match(VERSION_REGEX) }
282
- .select { |version| requirement_valid?(">= #{version}") }
283
- .max_by { |version| Composer::Version.new(version.to_s) }
277
+ dependency.requirements
278
+ .filter_map(&:requirement_string)
279
+ .reject { |req_string| req_string.start_with?("<") }
280
+ .select { |req_string| req_string.match?(VERSION_REGEX) }
281
+ .map { |req_string| req_string.match(VERSION_REGEX) }
282
+ .select { |version| requirement_valid?(">= #{version}") }
283
+ .max_by { |version| Composer::Version.new(version.to_s) }
284
284
 
285
285
  ">= #{version_for_requirement || 0}"
286
286
  end
@@ -301,7 +301,6 @@ module Dependabot
301
301
  lower_bound + ", == #{latest_allowable_version}"
302
302
  end
303
303
  # rubocop:enable Metrics/PerceivedComplexity
304
- # rubocop:enable Metrics/AbcSize
305
304
 
306
305
  # TODO: Extract error handling and share between the lockfile updater
307
306
  #
@@ -156,13 +156,13 @@ module Dependabot
156
156
 
157
157
  sig { returns(T::Boolean) }
158
158
  def path_dependency?
159
- dependency.requirements.any? { |r| r.dig(:source, :type) == "path" }
159
+ dependency.requirements.any? { |r| r.source_string("type") == "path" }
160
160
  end
161
161
 
162
162
  # To be a true git dependency, it must have a branch.
163
163
  sig { returns(T::Boolean) }
164
164
  def git_dependency?
165
- dependency.requirements.any? { |r| r.dig(:source, :branch) }
165
+ dependency.requirements.any? { |r| r.source_string("branch") }
166
166
  end
167
167
 
168
168
  sig { returns(Dependabot::DependencyFile) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-composer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.391.0
4
+ version: 0.392.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.391.0
18
+ version: 0.392.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.391.0
25
+ version: 0.392.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -276,7 +276,7 @@ licenses:
276
276
  - MIT
277
277
  metadata:
278
278
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
279
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.391.0
279
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.392.0
280
280
  rdoc_options: []
281
281
  require_paths:
282
282
  - lib