dependabot-rust_toolchain 0.334.0 → 0.335.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: cdb44f4b0f8a8afc4195f353e99901bf2aad638ddebb469abf628eaeff62d0ab
4
- data.tar.gz: ae37edfe55112ce4f4061d0df645add7d1752246f6c4970cab9611b3f4ac1649
3
+ metadata.gz: 3434912dd874d817f710ba288a846c1de2946c343621fe93e2983af87ea9e5f3
4
+ data.tar.gz: 811bab1f287e5929d6998072b61cba77a8f46a747befe4da5c82b2c6aceaf7c7
5
5
  SHA512:
6
- metadata.gz: 3080bb7f229320c931b16d88bee8c8db1c084e365a4bc0f054b8e9158068b5078e3269a86875e34bfdd6f00410a2ce64cacf42226fe83d30236e7ef51f8ecbec
7
- data.tar.gz: d4486c39c789796af635ae0385ee67c8086600034c719c9e3d48a5128772a1f26fb15266638ee1d7c4b0a92707423dabe38a18cfeb00779ac71a22c284f06b6a
6
+ metadata.gz: 1325790a506f9105732c949191c2211489449769d8dc1c0437b3c41af4744e5646b7366dcc9d761ee36ec2dc3736da56dbd8ae119bdf8913f72dbaa041183fdb
7
+ data.tar.gz: 708ff561efe1b67ed1984cd26d59634fbf4f4ddd0fae4090ec1b95e83072ed4ea43689537ab4b70c067c350d2a929366e805a527811bd448b69cc7556b0ae1cb
@@ -1,4 +1,4 @@
1
- # typed: strict
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "sorbet-runtime"
@@ -10,6 +10,7 @@ require "dependabot/file_parsers"
10
10
  require "dependabot/file_parsers/base"
11
11
  require "dependabot/file_parsers/base/dependency_set"
12
12
 
13
+ require "dependabot/rust_toolchain/models/rust_toolchain_toml"
13
14
  require "dependabot/rust_toolchain/package_manager"
14
15
 
15
16
  module Dependabot
@@ -80,16 +81,8 @@ module Dependabot
80
81
 
81
82
  sig { params(content: String).returns(String) }
82
83
  def parse_toml_toolchain(content)
83
- parsed = TomlRB.parse(content)
84
-
85
- channel = parsed.dig("toolchain", "channel")
86
- return channel if channel
87
-
88
- Dependabot.logger.warn("No toolchain section found in rust-toolchain.toml file.")
89
- raise Dependabot::DependencyFileNotParseable, "rust-toolchain.toml"
90
- rescue TomlRB::ParseError => e
91
- Dependabot.logger.warn("Failed to parse rust-toolchain.toml file: #{e.message}")
92
- raise Dependabot::DependencyFileNotParseable, "rust-toolchain.toml"
84
+ toolchain_toml = Models::RustToolchainToml.from_toml(content)
85
+ toolchain_toml.channel
93
86
  end
94
87
 
95
88
  sig { params(content: String).returns(String) }
@@ -0,0 +1,31 @@
1
+ # typed: strong
2
+ # frozen_string_literal: true
3
+
4
+ require "sorbet-runtime"
5
+
6
+ module Dependabot
7
+ module RustToolchain
8
+ module Models
9
+ # Typed struct for the [toolchain] section of rust-toolchain.toml files
10
+ # https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file
11
+ class RustToolchainConfig < T::ImmutableStruct
12
+ extend T::Sig
13
+
14
+ # The channel specifies which toolchain to use
15
+ # Format: "(<channel>[-<date>])|<custom toolchain name>"
16
+ # Examples: "stable", "beta", "nightly", "nightly-2020-07-10", "1.70.0"
17
+ const :channel, String
18
+
19
+ # Creates a RustToolchainConfig from a hash representation
20
+ sig { params(data: T::Hash[String, T.untyped]).returns(RustToolchainConfig) }
21
+ def self.from_hash(data)
22
+ new(
23
+ channel: T.cast(data["channel"], String)
24
+ )
25
+ rescue TypeError => e
26
+ raise Dependabot::DependencyFileNotParseable, "Invalid toolchain config: #{e.message}"
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+ # frozen_string_literal: true
3
+
4
+ require "sorbet-runtime"
5
+ require "toml-rb"
6
+
7
+ require "dependabot/errors"
8
+ require "dependabot/rust_toolchain/models/rust_toolchain_config"
9
+
10
+ module Dependabot
11
+ module RustToolchain
12
+ module Models
13
+ # Typed struct for rust-toolchain.toml file structure
14
+ # https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file
15
+ class RustToolchainToml < T::ImmutableStruct
16
+ extend T::Sig
17
+
18
+ # The [toolchain] section containing the toolchain configuration
19
+ # This is the only top-level section currently supported
20
+ const :toolchain, RustToolchainConfig
21
+
22
+ sig { params(toml_string: String).returns(RustToolchainToml) }
23
+ def self.from_toml(toml_string)
24
+ parsed_data = TomlRB.parse(toml_string)
25
+ data = T.cast(parsed_data, T::Hash[String, T.untyped])
26
+
27
+ toolchain_data = T.cast(data["toolchain"], T::Hash[String, T.untyped])
28
+ new(
29
+ toolchain: RustToolchainConfig.from_hash(toolchain_data)
30
+ )
31
+ rescue TomlRB::ParseError, TypeError => e
32
+ raise Dependabot::DependencyFileNotParseable, "Invalid TOML syntax: #{e.message}"
33
+ end
34
+
35
+ # Extracts the channel from the toolchain configuration
36
+ sig { returns(String) }
37
+ def channel
38
+ toolchain.channel
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-rust_toolchain
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.334.0
4
+ version: 0.335.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.334.0
18
+ version: 0.335.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.334.0
25
+ version: 0.335.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: debug
28
28
  requirement: !ruby/object:Gem::Requirement
@@ -113,56 +113,56 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '1.67'
116
+ version: '1.80'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '1.67'
123
+ version: '1.80'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rubocop-performance
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '1.22'
130
+ version: '1.26'
131
131
  type: :development
132
132
  prerelease: false
133
133
  version_requirements: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - "~>"
136
136
  - !ruby/object:Gem::Version
137
- version: '1.22'
137
+ version: '1.26'
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: rubocop-rspec
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - "~>"
143
143
  - !ruby/object:Gem::Version
144
- version: '2.29'
144
+ version: '3.7'
145
145
  type: :development
146
146
  prerelease: false
147
147
  version_requirements: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - "~>"
150
150
  - !ruby/object:Gem::Version
151
- version: '2.29'
151
+ version: '3.7'
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: rubocop-sorbet
154
154
  requirement: !ruby/object:Gem::Requirement
155
155
  requirements:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
- version: '0.8'
158
+ version: '0.10'
159
159
  type: :development
160
160
  prerelease: false
161
161
  version_requirements: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - "~>"
164
164
  - !ruby/object:Gem::Version
165
- version: '0.8'
165
+ version: '0.10'
166
166
  - !ruby/object:Gem::Dependency
167
167
  name: simplecov
168
168
  requirement: !ruby/object:Gem::Requirement
@@ -248,6 +248,8 @@ files:
248
248
  - lib/dependabot/rust_toolchain/file_parser.rb
249
249
  - lib/dependabot/rust_toolchain/file_updater.rb
250
250
  - lib/dependabot/rust_toolchain/metadata_finder.rb
251
+ - lib/dependabot/rust_toolchain/models/rust_toolchain_config.rb
252
+ - lib/dependabot/rust_toolchain/models/rust_toolchain_toml.rb
251
253
  - lib/dependabot/rust_toolchain/package/package_details_fetcher.rb
252
254
  - lib/dependabot/rust_toolchain/package_manager.rb
253
255
  - lib/dependabot/rust_toolchain/requirement.rb
@@ -259,7 +261,7 @@ licenses:
259
261
  - MIT
260
262
  metadata:
261
263
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
262
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.334.0
264
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.335.0
263
265
  rdoc_options: []
264
266
  require_paths:
265
267
  - lib