dependabot-dotnet_sdk 0.284.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 +7 -0
- data/lib/dependabot/dotnet_sdk/file_fetcher.rb +46 -0
- data/lib/dependabot/dotnet_sdk/file_parser.rb +79 -0
- data/lib/dependabot/dotnet_sdk/file_updater.rb +56 -0
- data/lib/dependabot/dotnet_sdk/metadata_finder.rb +22 -0
- data/lib/dependabot/dotnet_sdk/requirement.rb +24 -0
- data/lib/dependabot/dotnet_sdk/update_checker/latest_version_finder.rb +140 -0
- data/lib/dependabot/dotnet_sdk/update_checker.rb +67 -0
- data/lib/dependabot/dotnet_sdk/version.rb +18 -0
- data/lib/dependabot/dotnet_sdk.rb +20 -0
- metadata +278 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 15a706a053292404193686a020b0b1adbbd7b1b64224227e540ba4f7e6a59a0c
|
4
|
+
data.tar.gz: e08698fe639234d590f38efe79ade970060d04b5900364a3f4f51651d454e5e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ed64acdf3bce66fc957374c4edc9892c34f69e291f0c3650dbe4a2edc0050c688d043af8ce8fb48d04af70adb8552d0d3c1c5d0bb5167ac71ec6a8173d566fa1
|
7
|
+
data.tar.gz: 29a61629201e766b4f744d42497305d465c98bc535c8268fd1d8e2cf5b3d0d063d17edb32a008a0ba595d597e02bc6de1391cd596083330abfb6ebc2a95a5f81
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/file_fetchers"
|
5
|
+
require "dependabot/file_fetchers/base"
|
6
|
+
require "sorbet-runtime"
|
7
|
+
|
8
|
+
module Dependabot
|
9
|
+
module DotnetSdk
|
10
|
+
class FileFetcher < Dependabot::FileFetchers::Base
|
11
|
+
extend T::Sig
|
12
|
+
|
13
|
+
sig { override.params(filenames: T::Array[String]).returns(T::Boolean) }
|
14
|
+
def self.required_files_in?(filenames)
|
15
|
+
filenames.any? { |f| File.basename(f) == "global.json" }
|
16
|
+
end
|
17
|
+
|
18
|
+
sig { override.returns(String) }
|
19
|
+
def self.required_files_message
|
20
|
+
"Repo must contain a global.json file."
|
21
|
+
end
|
22
|
+
|
23
|
+
sig { override.returns(T::Array[Dependabot::DependencyFile]) }
|
24
|
+
def fetch_files
|
25
|
+
fetched_files = []
|
26
|
+
fetched_files << root_file
|
27
|
+
|
28
|
+
return fetched_files if fetched_files.any?
|
29
|
+
|
30
|
+
raise Dependabot::DependencyFileNotFound.new(
|
31
|
+
nil,
|
32
|
+
"global.json not found in #{directory}"
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
sig { returns(T.nilable(Dependabot::DependencyFile)) }
|
39
|
+
def root_file
|
40
|
+
fetch_file_if_present("global.json")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Dependabot::FileFetchers.register("dotnet_sdk", Dependabot::DotnetSdk::FileFetcher)
|
@@ -0,0 +1,79 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/dependency"
|
5
|
+
require "dependabot/file_parsers"
|
6
|
+
require "dependabot/file_parsers/base"
|
7
|
+
require "sorbet-runtime"
|
8
|
+
|
9
|
+
module Dependabot
|
10
|
+
module DotnetSdk
|
11
|
+
class FileParser < Dependabot::FileParsers::Base
|
12
|
+
extend T::Sig
|
13
|
+
|
14
|
+
require "dependabot/file_parsers/base/dependency_set"
|
15
|
+
|
16
|
+
sig { override.returns(T::Array[Dependabot::Dependency]) }
|
17
|
+
def parse
|
18
|
+
dependency_set = DependencySet.new
|
19
|
+
|
20
|
+
config_dependency_files.each do |config_dependency_file|
|
21
|
+
dependency = parse_dependency_file(config_dependency_file)
|
22
|
+
dependency_set << dependency if dependency
|
23
|
+
end
|
24
|
+
|
25
|
+
dependency_set.dependencies
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
sig { params(dependency_file: Dependabot::DependencyFile).returns(T.nilable(Dependabot::Dependency)) }
|
31
|
+
def parse_dependency_file(dependency_file)
|
32
|
+
return unless dependency_file.content
|
33
|
+
|
34
|
+
begin
|
35
|
+
contents = JSON.parse(T.must(dependency_file.content))
|
36
|
+
rescue JSON::ParserError
|
37
|
+
raise Dependabot::DependencyFileNotParseable, T.must(dependency_files.first).path
|
38
|
+
end
|
39
|
+
|
40
|
+
return unless contents["sdk"]
|
41
|
+
|
42
|
+
Dependabot::Dependency.new(
|
43
|
+
name: "dotnet-sdk",
|
44
|
+
version: contents["sdk"]["version"],
|
45
|
+
package_manager: "dotnet_sdk",
|
46
|
+
requirements: [{
|
47
|
+
file: dependency_file.name,
|
48
|
+
requirement: contents["sdk"]["version"],
|
49
|
+
groups: [],
|
50
|
+
source: nil
|
51
|
+
}],
|
52
|
+
metadata: {
|
53
|
+
allow_prerelease: contents["sdk"]["allowPrerelease"] || false,
|
54
|
+
roll_forward: contents["sdk"]["rollForward"] || "latestPatch"
|
55
|
+
}
|
56
|
+
)
|
57
|
+
end
|
58
|
+
|
59
|
+
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
60
|
+
def config_dependency_files
|
61
|
+
@config_dependency_files ||= T.let(
|
62
|
+
dependency_files.select do |f|
|
63
|
+
f.name.end_with?("global.json")
|
64
|
+
end,
|
65
|
+
T.nilable(T::Array[Dependabot::DependencyFile])
|
66
|
+
)
|
67
|
+
end
|
68
|
+
|
69
|
+
sig { override.void }
|
70
|
+
def check_required_files
|
71
|
+
return if dependency_files.any?
|
72
|
+
|
73
|
+
raise "No dependency files!"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
Dependabot::FileParsers.register("dotnet_sdk", Dependabot::DotnetSdk::FileParser)
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/file_updaters"
|
5
|
+
require "dependabot/file_updaters/base"
|
6
|
+
require "sorbet-runtime"
|
7
|
+
|
8
|
+
module Dependabot
|
9
|
+
module DotnetSdk
|
10
|
+
class FileUpdater < Dependabot::FileUpdaters::Base
|
11
|
+
extend T::Sig
|
12
|
+
|
13
|
+
sig { override.returns(T::Array[Regexp]) }
|
14
|
+
def self.updated_files_regex
|
15
|
+
[/^global\.json$/]
|
16
|
+
end
|
17
|
+
|
18
|
+
sig { override.returns(T::Array[Dependabot::DependencyFile]) }
|
19
|
+
def updated_dependency_files
|
20
|
+
updated_files = []
|
21
|
+
|
22
|
+
contents = update
|
23
|
+
|
24
|
+
updated_files << updated_file(file: global_json, content: contents) if file_changed?(global_json)
|
25
|
+
|
26
|
+
updated_files
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
sig { returns(Dependabot::Dependency) }
|
32
|
+
def dependency
|
33
|
+
T.must(dependencies.first)
|
34
|
+
end
|
35
|
+
|
36
|
+
sig { override.void }
|
37
|
+
def check_required_files
|
38
|
+
return if dependency_files.any?
|
39
|
+
|
40
|
+
raise "No global.json configuration!"
|
41
|
+
end
|
42
|
+
|
43
|
+
sig { returns(Dependabot::DependencyFile) }
|
44
|
+
def global_json
|
45
|
+
T.must(dependency_files.find { |f| f.name == "global.json" })
|
46
|
+
end
|
47
|
+
|
48
|
+
sig { returns(String) }
|
49
|
+
def update
|
50
|
+
T.must(global_json.content).gsub(T.must(dependency.previous_version), T.must(dependency.version))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
Dependabot::FileUpdaters.register("dotnet_sdk", Dependabot::DotnetSdk::FileUpdater)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/metadata_finders"
|
5
|
+
require "dependabot/metadata_finders/base"
|
6
|
+
|
7
|
+
module Dependabot
|
8
|
+
module DotnetSdk
|
9
|
+
class MetadataFinder < Dependabot::MetadataFinders::Base
|
10
|
+
extend T::Sig
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
sig { override.returns(T.nilable(Dependabot::Source)) }
|
15
|
+
def look_up_source
|
16
|
+
Source.from_url("https://github.com/dotnet/sdk")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
Dependabot::MetadataFinders.register("dotnet_sdk", Dependabot::DotnetSdk::MetadataFinder)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/requirement"
|
5
|
+
require "dependabot/utils"
|
6
|
+
|
7
|
+
module Dependabot
|
8
|
+
module DotnetSdk
|
9
|
+
class Requirement < Dependabot::Requirement
|
10
|
+
AND_SEPARATOR = /(?<=[a-zA-Z0-9*])\s+(?:&+\s+)?(?!\s*[|-])/
|
11
|
+
|
12
|
+
# For consistency with other languages, we define a requirements array.
|
13
|
+
# global.json don't have an `OR` separator for requirements, so it
|
14
|
+
# always contains a single element.
|
15
|
+
sig { override.params(requirement_string: T.nilable(String)).returns(T::Array[Dependabot::Requirement]) }
|
16
|
+
def self.requirements_array(requirement_string)
|
17
|
+
[new(requirement_string)]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Dependabot::Utils
|
24
|
+
.register_requirement_class("dotnet_sdk", Dependabot::DotnetSdk::Requirement)
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# typed: strict
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "excon"
|
5
|
+
require "sorbet-runtime"
|
6
|
+
|
7
|
+
require "dependabot/dotnet_sdk/requirement"
|
8
|
+
require "dependabot/dotnet_sdk/version"
|
9
|
+
require "dependabot/registry_client"
|
10
|
+
require "dependabot/update_checkers/base"
|
11
|
+
|
12
|
+
module Dependabot
|
13
|
+
module DotnetSdk
|
14
|
+
class UpdateChecker < Dependabot::UpdateCheckers::Base
|
15
|
+
class LatestVersionFinder
|
16
|
+
extend T::Sig
|
17
|
+
|
18
|
+
RELEASES_INDEX_URL = "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/releases-index.json"
|
19
|
+
|
20
|
+
sig { params(dependency: Dependabot::Dependency, ignored_versions: T::Array[String]).void }
|
21
|
+
def initialize(dependency:, ignored_versions:)
|
22
|
+
@dependency = dependency
|
23
|
+
@ignored_versions = ignored_versions
|
24
|
+
end
|
25
|
+
|
26
|
+
sig { returns(T.nilable(Dependabot::Version)) }
|
27
|
+
def latest_version
|
28
|
+
@latest_version ||= T.let(
|
29
|
+
fetch_latest_version,
|
30
|
+
T.nilable(Dependabot::Version)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
35
|
+
|
36
|
+
sig { returns(Dependabot::Dependency) }
|
37
|
+
attr_reader :dependency
|
38
|
+
|
39
|
+
sig { returns(T::Array[String]) }
|
40
|
+
attr_reader :ignored_versions
|
41
|
+
|
42
|
+
sig { returns(T.nilable(Dependabot::Version)) }
|
43
|
+
def fetch_latest_version
|
44
|
+
versions = available_versions
|
45
|
+
versions = filter_prerelease_versions(versions)
|
46
|
+
versions = filter_ignored_versions(versions)
|
47
|
+
versions.max
|
48
|
+
end
|
49
|
+
|
50
|
+
sig { returns(T::Array[Dependabot::Version]) }
|
51
|
+
def available_versions
|
52
|
+
releases.map { |v| version_class.new(v) }
|
53
|
+
end
|
54
|
+
|
55
|
+
sig { params(versions: T::Array[Dependabot::Version]).returns(T::Array[Dependabot::Version]) }
|
56
|
+
def filter_prerelease_versions(versions)
|
57
|
+
return versions if wants_prerelease?
|
58
|
+
|
59
|
+
# This isn't entirely accurate. .NET considers release candidates to NOT be pre-releases.
|
60
|
+
# However, we want to be conservative.
|
61
|
+
# See https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
|
62
|
+
versions.reject(&:prerelease?)
|
63
|
+
end
|
64
|
+
|
65
|
+
sig { params(versions: T::Array[Dependabot::Version]).returns(T::Array[Dependabot::Version]) }
|
66
|
+
def filter_ignored_versions(versions)
|
67
|
+
versions.reject do |version|
|
68
|
+
ignore_requirements.any? { |r| r.satisfied_by?(version) }
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
sig { returns(T::Array[String]) }
|
73
|
+
def releases
|
74
|
+
response = releases_response
|
75
|
+
return [] unless response.status == 200
|
76
|
+
|
77
|
+
parsed = JSON.parse(response.body)
|
78
|
+
parsed["releases-index"].flat_map do |release|
|
79
|
+
release_channel(release["releases.json"])
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
sig { returns(Excon::Response) }
|
84
|
+
def releases_response
|
85
|
+
Dependabot::RegistryClient.get(
|
86
|
+
url: RELEASES_INDEX_URL,
|
87
|
+
headers: { "Accept" => "application/json" }
|
88
|
+
)
|
89
|
+
end
|
90
|
+
|
91
|
+
sig { params(url: String).returns(T::Array[String]) }
|
92
|
+
def release_channel(url)
|
93
|
+
response = release_channel_response(url)
|
94
|
+
begin
|
95
|
+
parsed = JSON.parse(T.must(response).body)
|
96
|
+
rescue JSON::ParserError
|
97
|
+
raise Dependabot::DependencyFileNotResolvable, "Invalid JSON response from #{url}"
|
98
|
+
end
|
99
|
+
|
100
|
+
parsed["releases"].map do |release|
|
101
|
+
if release["sdks"].nil?
|
102
|
+
release["sdk"]["version"]
|
103
|
+
else
|
104
|
+
release["sdks"].flat_map { |sdk| sdk["version"] }
|
105
|
+
end
|
106
|
+
end
|
107
|
+
.flatten
|
108
|
+
end
|
109
|
+
|
110
|
+
sig { params(url: String).returns(T.nilable(Excon::Response)) }
|
111
|
+
def release_channel_response(url)
|
112
|
+
Dependabot::RegistryClient.get(
|
113
|
+
url: url,
|
114
|
+
headers: { "Accept" => "application/json" }
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
sig { returns(T::Boolean) }
|
119
|
+
def wants_prerelease?
|
120
|
+
dependency.metadata[:allow_prerelease]
|
121
|
+
end
|
122
|
+
|
123
|
+
sig { returns(T::Array[Dependabot::Requirement]) }
|
124
|
+
def ignore_requirements
|
125
|
+
ignored_versions.flat_map { |req| requirement_class.requirements_array(req) }
|
126
|
+
end
|
127
|
+
|
128
|
+
sig { returns(T.class_of(Dependabot::Version)) }
|
129
|
+
def version_class
|
130
|
+
dependency.version_class
|
131
|
+
end
|
132
|
+
|
133
|
+
sig { returns(T.class_of(Dependabot::Requirement)) }
|
134
|
+
def requirement_class
|
135
|
+
dependency.requirement_class
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "sorbet-runtime"
|
5
|
+
|
6
|
+
require "dependabot/errors"
|
7
|
+
require "dependabot/update_checkers"
|
8
|
+
require "dependabot/update_checkers/base"
|
9
|
+
|
10
|
+
module Dependabot
|
11
|
+
module DotnetSdk
|
12
|
+
class UpdateChecker < Dependabot::UpdateCheckers::Base
|
13
|
+
extend T::Sig
|
14
|
+
|
15
|
+
require_relative "update_checker/latest_version_finder"
|
16
|
+
|
17
|
+
sig { override.returns(T.nilable(T.any(String, Gem::Version))) }
|
18
|
+
def latest_version
|
19
|
+
latest_version_finder.latest_version
|
20
|
+
end
|
21
|
+
|
22
|
+
sig { override.returns(T.nilable(T.any(String, Gem::Version))) }
|
23
|
+
def latest_resolvable_version
|
24
|
+
latest_version
|
25
|
+
end
|
26
|
+
|
27
|
+
sig { override.returns(T.nilable(Dependabot::Version)) }
|
28
|
+
def latest_resolvable_version_with_no_unlock
|
29
|
+
raise NotImplementedError
|
30
|
+
end
|
31
|
+
|
32
|
+
sig { override.returns(T::Array[T::Hash[Symbol, T.untyped]]) }
|
33
|
+
def updated_requirements
|
34
|
+
dependency.requirements.map do |requirement|
|
35
|
+
{
|
36
|
+
file: requirement[:file],
|
37
|
+
requirement: latest_version,
|
38
|
+
groups: requirement[:groups],
|
39
|
+
source: requirement[:source]
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
sig { override.returns(T::Boolean) }
|
47
|
+
def latest_version_resolvable_with_full_unlock?
|
48
|
+
false
|
49
|
+
end
|
50
|
+
|
51
|
+
sig { override.returns(T::Array[Dependabot::Dependency]) }
|
52
|
+
def updated_dependencies_after_full_unlock
|
53
|
+
raise NotImplementedError
|
54
|
+
end
|
55
|
+
|
56
|
+
sig { returns(LatestVersionFinder) }
|
57
|
+
def latest_version_finder
|
58
|
+
@latest_version_finder ||= T.let(
|
59
|
+
LatestVersionFinder.new(dependency: dependency, ignored_versions: ignored_versions),
|
60
|
+
T.nilable(LatestVersionFinder)
|
61
|
+
)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
Dependabot::UpdateCheckers.register("dotnet_sdk", Dependabot::DotnetSdk::UpdateChecker)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require "dependabot/version"
|
5
|
+
require "dependabot/utils"
|
6
|
+
|
7
|
+
module Dependabot
|
8
|
+
module DotnetSdk
|
9
|
+
# The .NET SDK versioning scheme is not semver compliant.
|
10
|
+
# However, for simpliticy, we will treat it as semver.
|
11
|
+
# See: https://learn.microsoft.com/en-us/dotnet/core/versions/#versioning-details
|
12
|
+
class Version < Dependabot::Version
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
Dependabot::Utils
|
18
|
+
.register_version_class("dotnet_sdk", Dependabot::DotnetSdk::Version)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# typed: strong
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# These all need to be required so the various classes can be registered in a
|
5
|
+
# lookup table of package manager names to concrete classes.
|
6
|
+
require "dependabot/dotnet_sdk/file_fetcher"
|
7
|
+
require "dependabot/dotnet_sdk/file_parser"
|
8
|
+
require "dependabot/dotnet_sdk/update_checker"
|
9
|
+
require "dependabot/dotnet_sdk/file_updater"
|
10
|
+
require "dependabot/dotnet_sdk/metadata_finder"
|
11
|
+
require "dependabot/dotnet_sdk/requirement"
|
12
|
+
require "dependabot/dotnet_sdk/version"
|
13
|
+
|
14
|
+
require "dependabot/pull_request_creator/labeler"
|
15
|
+
Dependabot::PullRequestCreator::Labeler
|
16
|
+
.register_label_details("dotnet_sdk", name: "dotnet_sdk_package_manager", colour: "512BD4")
|
17
|
+
|
18
|
+
require "dependabot/dependency"
|
19
|
+
Dependabot::Dependency
|
20
|
+
.register_production_check("dotnet_sdk", ->(_) { true })
|
metadata
ADDED
@@ -0,0 +1,278 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dependabot-dotnet_sdk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.284.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dependabot
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-11-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dependabot-common
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.284.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.284.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: debug
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.9.2
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.9.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: gpgme
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '13'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.12'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.12'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-its
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.3'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.3'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec-sorbet
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.9.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.9.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: rubocop
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.67.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.67.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rubocop-performance
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 1.22.1
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 1.22.1
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rubocop-rspec
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 2.29.1
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.29.1
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop-sorbet
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 0.8.5
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 0.8.5
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: simplecov
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.22.0
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.22.0
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: turbo_tests
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 2.2.0
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 2.2.0
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: vcr
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '6.1'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '6.1'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: webmock
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '3.18'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '3.18'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: webrick
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '1.7'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '1.7'
|
237
|
+
description: dependabot-dotnet_sdk provides support for managing .NET SDK versioning
|
238
|
+
via Dependabot.
|
239
|
+
email: opensource@github.com
|
240
|
+
executables: []
|
241
|
+
extensions: []
|
242
|
+
extra_rdoc_files: []
|
243
|
+
files:
|
244
|
+
- lib/dependabot/dotnet_sdk.rb
|
245
|
+
- lib/dependabot/dotnet_sdk/file_fetcher.rb
|
246
|
+
- lib/dependabot/dotnet_sdk/file_parser.rb
|
247
|
+
- lib/dependabot/dotnet_sdk/file_updater.rb
|
248
|
+
- lib/dependabot/dotnet_sdk/metadata_finder.rb
|
249
|
+
- lib/dependabot/dotnet_sdk/requirement.rb
|
250
|
+
- lib/dependabot/dotnet_sdk/update_checker.rb
|
251
|
+
- lib/dependabot/dotnet_sdk/update_checker/latest_version_finder.rb
|
252
|
+
- lib/dependabot/dotnet_sdk/version.rb
|
253
|
+
homepage: https://github.com/dependabot/dependabot-core
|
254
|
+
licenses:
|
255
|
+
- MIT
|
256
|
+
metadata:
|
257
|
+
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
258
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.284.0
|
259
|
+
post_install_message:
|
260
|
+
rdoc_options: []
|
261
|
+
require_paths:
|
262
|
+
- lib
|
263
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
264
|
+
requirements:
|
265
|
+
- - ">="
|
266
|
+
- !ruby/object:Gem::Version
|
267
|
+
version: 3.1.0
|
268
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
269
|
+
requirements:
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: 3.1.0
|
273
|
+
requirements: []
|
274
|
+
rubygems_version: 3.5.9
|
275
|
+
signing_key:
|
276
|
+
specification_version: 4
|
277
|
+
summary: Provides Dependabot support for .NET SDK
|
278
|
+
test_files: []
|