Skip to content

Commit 2eb937a

Browse files
committed
update
1 parent 409d856 commit 2eb937a

6 files changed

Lines changed: 39 additions & 50 deletions

File tree

mise/lib/dependabot/mise/file_parser.rb

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ def parse
2020
write_manifest_files(dependency_files)
2121

2222
raw = Dependabot::SharedHelpers.run_shell_command(
23-
"mise outdated --bump --local --json",
23+
"mise ls --current --local --json",
2424
stderr_to_stdout: false,
2525
env: { "MISE_YES" => "1" }
2626
)
@@ -29,9 +29,8 @@ def parse
2929
next unless entry
3030

3131
requested = entry["requested"]
32-
bump = entry["bump"]
3332

34-
build_dependency(tool_name, requested, bump)
33+
build_dependency(tool_name, requested)
3534
end
3635
end
3736
rescue Dependabot::SharedHelpers::HelperSubprocessFailed => e
@@ -45,10 +44,10 @@ def parse
4544
private
4645

4746
sig do
48-
params(name: String, version: String, bump_version: T.nilable(String))
47+
params(name: String, version: String)
4948
.returns(Dependabot::Dependency)
5049
end
51-
def build_dependency(name, version, bump_version)
50+
def build_dependency(name, version)
5251
Dependabot::Dependency.new(
5352
name: name,
5453
version: version,
@@ -58,10 +57,7 @@ def build_dependency(name, version, bump_version)
5857
file: "mise.toml",
5958
groups: [],
6059
source: nil
61-
}],
62-
metadata: {
63-
bump_version: bump_version
64-
}
60+
}]
6561
)
6662
end
6763

mise/lib/dependabot/mise/requirement.rb

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,46 @@
11
# typed: strong
22
# frozen_string_literal: true
33

4-
# NOTE: This file was scaffolded automatically but is OPTIONAL.
5-
# If your ecosystem uses standard Gem::Requirement logic,
6-
# you can safely delete this file and remove the require from lib/dependabot/mise.rb
74
require "dependabot/requirement"
85
require "dependabot/utils"
6+
require "wildcard_matcher"
97

108
module Dependabot
119
module Mise
1210
class Requirement < Dependabot::Requirement
1311
extend T::Sig
1412

15-
# Add custom requirement parsing logic if needed
16-
# If standard Gem::Requirement is sufficient, delete this file
17-
# This abstract method must be implemented
13+
WILDCARD_PATTERN = /\*/
14+
1815
sig do
1916
override
2017
.params(requirement_string: T.nilable(String))
21-
.returns(T::Array[Dependabot::Requirement])
18+
.returns(T::Array[Requirement])
2219
end
2320
def self.requirements_array(requirement_string)
2421
[new(requirement_string)]
2522
end
23+
24+
sig { params(requirements: T.nilable(String)).void }
25+
def initialize(*requirements)
26+
requirements = requirements.flatten.compact.flat_map { |r| r.split(",").map(&:strip) }
27+
28+
@wildcard_patterns = T.let(
29+
requirements.select { |r| r.match?(WILDCARD_PATTERN) },
30+
T::Array[String]
31+
)
32+
33+
normal = requirements.reject { |r| r.match?(WILDCARD_PATTERN) }
34+
super(normal.empty? ? ["!= 0"] : normal)
35+
end
36+
37+
sig { override.params(version: Gem::Version).returns(T::Boolean) }
38+
def satisfied_by?(version)
39+
version_string = T.cast(version, Gem::Version).to_s
40+
result = @wildcard_patterns.any? { |p| WildcardMatcher.match?(p, version_string) } ||
41+
(@wildcard_patterns.empty? && super)
42+
T.cast(result, T::Boolean)
43+
end
2644
end
2745
end
2846
end

mise/lib/dependabot/mise/update_checker.rb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ class UpdateChecker < Dependabot::UpdateCheckers::Base
1414

1515
sig { override.returns(T.nilable(T.any(String, Gem::Version))) }
1616
def latest_version
17-
return nil unless updatable?
18-
1917
@latest_version ||= T.let(
2018
LatestVersionFinder.new(
2119
dependency: dependency,
@@ -60,11 +58,6 @@ def latest_version_resolvable_with_full_unlock?
6058
def updated_dependencies_after_full_unlock
6159
[]
6260
end
63-
64-
sig { returns(T::Boolean) }
65-
def updatable?
66-
!dependency.metadata[:bump_version].nil? && !dependency.metadata[:bump_version].empty?
67-
end
6861
end
6962
end
7063
end

mise/lib/dependabot/mise/update_checker/latest_version_finder.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
require "dependabot/package/package_latest_version_finder"
55
require "dependabot/mise/helpers"
6+
require "dependabot/mise/requirement"
67
require "dependabot/shared_helpers"
78
require "json"
89

mise/spec/dependabot/mise/file_parser_spec.rb

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,13 @@
3939
context "with simple exact versions" do
4040
before do
4141
allow(Dependabot::SharedHelpers).to receive(:run_shell_command)
42-
.with(/mise outdated/, hash_including(stderr_to_stdout: false))
42+
.with(/mise ls/, hash_including(stderr_to_stdout: false))
4343
.and_return(JSON.dump(
4444
{
4545
"erlang" => {
4646
"name" => "erlang",
4747
"requested" => "27.3.2",
4848
"current" => nil,
49-
"bump" => "28.4.1",
5049
"latest" => "28.4.1",
5150
"source" => {
5251
"type" => "mise.toml",
@@ -57,7 +56,6 @@
5756
"name" => "elixir",
5857
"requested" => "1.18.4-otp-27",
5958
"current" => nil,
60-
"bump" => "1.19.5-otp-28",
6159
"latest" => "1.19.5-otp-28",
6260
"source" => {
6361
"type" => "mise.toml",
@@ -68,7 +66,6 @@
6866
"name" => "helm",
6967
"requested" => "3.17.3",
7068
"current" => nil,
71-
"bump" => "4.1.3",
7269
"latest" => "4.1.3",
7370
"source" => {
7471
"type" => "mise.toml",
@@ -117,14 +114,13 @@
117114
context "with mixed version formats" do
118115
before do
119116
allow(Dependabot::SharedHelpers).to receive(:run_shell_command)
120-
.with(/mise outdated/, hash_including(stderr_to_stdout: false))
117+
.with(/mise ls/, hash_including(stderr_to_stdout: false))
121118
.and_return(JSON.dump(
122119
{
123120
"node" => {
124121
"name" => "node",
125122
"requested" => "20",
126123
"current" => nil,
127-
"bump" => "25",
128124
"latest" => "25.8.1",
129125
"source" => {
130126
"type" => "mise.toml",
@@ -135,7 +131,6 @@
135131
"name" => "erlang",
136132
"requested" => "27.3.2",
137133
"current" => nil,
138-
"bump" => "28.4.1",
139134
"latest" => "28.4.1",
140135
"source" => {
141136
"type" => "mise.toml",
@@ -146,7 +141,6 @@
146141
"name" => "npm:@redocly/cli",
147142
"requested" => "2.19.1",
148143
"current" => nil,
149-
"bump" => "2.24.1",
150144
"latest" => "2.24.1",
151145
"source" => {
152146
"type" => "mise.toml",
@@ -157,7 +151,6 @@
157151
"name" => "python",
158152
"requested" => "latest",
159153
"current" => nil,
160-
"bump" => nil,
161154
"latest" => "3.14.3",
162155
"source" => {
163156
"type" => "mise.toml",
@@ -168,7 +161,6 @@
168161
"name" => "helm",
169162
"requested" => "3.17.3",
170163
"current" => nil,
171-
"bump" => "4.1.3",
172164
"latest" => "4.1.3",
173165
"source" => {
174166
"type" => "mise.toml",
@@ -179,7 +171,6 @@
179171
"name" => "ruby",
180172
"requested" => "3.3.0",
181173
"current" => nil,
182-
"bump" => "4.0.2",
183174
"latest" => "4.0.2",
184175
"source" => {
185176
"type" => "mise.toml",
@@ -190,7 +181,6 @@
190181
"name" => "go",
191182
"requested" => "1.18",
192183
"current" => nil,
193-
"bump" => "1.26",
194184
"latest" => "1.26.1",
195185
"source" => {
196186
"type" => "mise.toml",
@@ -239,14 +229,13 @@
239229
context "with fuzzy version formats" do
240230
before do
241231
allow(Dependabot::SharedHelpers).to receive(:run_shell_command)
242-
.with(/mise outdated/, hash_including(stderr_to_stdout: false))
232+
.with(/mise ls/, hash_including(stderr_to_stdout: false))
243233
.and_return(JSON.dump(
244234
{
245235
"node" => {
246236
"name" => "node",
247237
"requested" => "20",
248238
"current" => nil,
249-
"bump" => "25",
250239
"latest" => "25.8.1",
251240
"source" => {
252241
"type" => "mise.toml",
@@ -257,7 +246,6 @@
257246
"name" => "python",
258247
"requested" => "latest",
259248
"current" => nil,
260-
"bump" => nil,
261249
"latest" => "3.14.3",
262250
"source" => {
263251
"type" => "mise.toml",
@@ -268,7 +256,6 @@
268256
"name" => "ruby",
269257
"requested" => "lts",
270258
"current" => nil,
271-
"bump" => nil,
272259
"latest" => "4.0.2",
273260
"source" => {
274261
"type" => "mise.toml",

mise/spec/dependabot/mise/update_checker_spec.rb

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@
2626
file: "mise.toml",
2727
groups: [],
2828
source: nil
29-
}],
30-
metadata: {
31-
bump_version: "0.0.0"
32-
}
29+
}]
3330
)
3431
end
3532

@@ -122,16 +119,13 @@
122119
file: "mise.toml",
123120
groups: [],
124121
source: nil
125-
}],
126-
metadata: {
127-
bump_version: nil
128-
}
122+
}]
129123
)
130124
end
131125

132126
describe "#latest_version" do
133-
it "returns nil" do
134-
expect(checker.latest_version).to be_nil
127+
it "returns the latest available version" do
128+
expect(checker.latest_version).to eq "28.4.1"
135129
end
136130
end
137131
end
@@ -214,7 +208,7 @@
214208

215209
before do
216210
allow(Dependabot::SharedHelpers).to receive(:run_shell_command)
217-
.with(/mise ls-remote/, hash_including(stderr_to_stdout: false))
211+
.with(/mise ls-remote/, stderr_to_stdout: false, env: { "MISE_YES" => "1" })
218212
.and_return(JSON.dump(
219213
[
220214
{ "version" => "27.3.2", "created_at" => "2026-01-13T20:06:42.23Z",

0 commit comments

Comments
 (0)