dependabot-core 0.80.1 → 0.81.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 +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/dependabot/file_fetchers.rb +0 -2
- data/lib/dependabot/file_parsers.rb +0 -2
- data/lib/dependabot/file_updaters.rb +0 -2
- data/lib/dependabot/file_updaters/ruby/.DS_Store +0 -0
- data/lib/dependabot/metadata_finders.rb +0 -2
- data/lib/dependabot/update_checkers.rb +0 -2
- data/lib/dependabot/utils.rb +0 -4
- data/lib/dependabot/version.rb +1 -1
- metadata +3 -14
- data/lib/dependabot/file_fetchers/rust/cargo.rb +0 -240
- data/lib/dependabot/file_parsers/rust/cargo.rb +0 -213
- data/lib/dependabot/file_updaters/rust/cargo.rb +0 -83
- data/lib/dependabot/file_updaters/rust/cargo/lockfile_updater.rb +0 -251
- data/lib/dependabot/file_updaters/rust/cargo/manifest_updater.rb +0 -162
- data/lib/dependabot/metadata_finders/rust/cargo.rb +0 -64
- data/lib/dependabot/update_checkers/rust/cargo.rb +0 -282
- data/lib/dependabot/update_checkers/rust/cargo/file_preparer.rb +0 -202
- data/lib/dependabot/update_checkers/rust/cargo/requirements_updater.rb +0 -175
- data/lib/dependabot/update_checkers/rust/cargo/version_resolver.rb +0 -242
- data/lib/dependabot/utils/rust/requirement.rb +0 -108
- data/lib/dependabot/utils/rust/version.rb +0 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d46b715b1f68703b62a2078d8937c31630c9c918b90221d758e50f39535607d9
|
|
4
|
+
data.tar.gz: 788de0506801b8bb803557348eac18c321cda7d3c0f4aa1b4f81c2fd8ca40fdf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ea4c222c5acef4126d5067acc657279b3d017e3f88db93dcfcaedefbcbbe423646ed476c3ebfc719f775250d326ffba099ad8ed59f817d0e2b63f096f4fa1fb
|
|
7
|
+
data.tar.gz: c8cffec6eb0256f1e57e1c6586d0c14c724d696b20c957cc6ff9868004faf5b6b5cbef06baeaf95fc9cde1b23a900768253695e114e201ce977544c039a4d839
|
data/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,6 @@ require "dependabot/file_fetchers/java/maven"
|
|
|
6
6
|
require "dependabot/file_fetchers/java/gradle"
|
|
7
7
|
require "dependabot/file_fetchers/php/composer"
|
|
8
8
|
require "dependabot/file_fetchers/elixir/hex"
|
|
9
|
-
require "dependabot/file_fetchers/rust/cargo"
|
|
10
9
|
require "dependabot/file_fetchers/go/dep"
|
|
11
10
|
require "dependabot/file_fetchers/go/modules"
|
|
12
11
|
require "dependabot/file_fetchers/elm/elm_package"
|
|
@@ -20,7 +19,6 @@ module Dependabot
|
|
|
20
19
|
"gradle" => FileFetchers::Java::Gradle,
|
|
21
20
|
"composer" => FileFetchers::Php::Composer,
|
|
22
21
|
"hex" => FileFetchers::Elixir::Hex,
|
|
23
|
-
"cargo" => FileFetchers::Rust::Cargo,
|
|
24
22
|
"dep" => FileFetchers::Go::Dep,
|
|
25
23
|
"go_modules" => FileFetchers::Go::Modules,
|
|
26
24
|
"elm-package" => FileFetchers::Elm::ElmPackage
|
|
@@ -6,7 +6,6 @@ require "dependabot/file_parsers/java/maven"
|
|
|
6
6
|
require "dependabot/file_parsers/java/gradle"
|
|
7
7
|
require "dependabot/file_parsers/php/composer"
|
|
8
8
|
require "dependabot/file_parsers/elixir/hex"
|
|
9
|
-
require "dependabot/file_parsers/rust/cargo"
|
|
10
9
|
require "dependabot/file_parsers/go/dep"
|
|
11
10
|
require "dependabot/file_parsers/go/modules"
|
|
12
11
|
require "dependabot/file_parsers/elm/elm_package"
|
|
@@ -20,7 +19,6 @@ module Dependabot
|
|
|
20
19
|
"gradle" => FileParsers::Java::Gradle,
|
|
21
20
|
"composer" => FileParsers::Php::Composer,
|
|
22
21
|
"hex" => FileParsers::Elixir::Hex,
|
|
23
|
-
"cargo" => FileParsers::Rust::Cargo,
|
|
24
22
|
"dep" => FileParsers::Go::Dep,
|
|
25
23
|
"go_modules" => FileParsers::Go::Modules,
|
|
26
24
|
"elm-package" => FileParsers::Elm::ElmPackage
|
|
@@ -6,7 +6,6 @@ require "dependabot/file_updaters/java/maven"
|
|
|
6
6
|
require "dependabot/file_updaters/java/gradle"
|
|
7
7
|
require "dependabot/file_updaters/php/composer"
|
|
8
8
|
require "dependabot/file_updaters/elixir/hex"
|
|
9
|
-
require "dependabot/file_updaters/rust/cargo"
|
|
10
9
|
require "dependabot/file_updaters/go/dep"
|
|
11
10
|
require "dependabot/file_updaters/go/modules"
|
|
12
11
|
require "dependabot/file_updaters/elm/elm_package"
|
|
@@ -20,7 +19,6 @@ module Dependabot
|
|
|
20
19
|
"gradle" => FileUpdaters::Java::Gradle,
|
|
21
20
|
"composer" => FileUpdaters::Php::Composer,
|
|
22
21
|
"hex" => FileUpdaters::Elixir::Hex,
|
|
23
|
-
"cargo" => FileUpdaters::Rust::Cargo,
|
|
24
22
|
"dep" => FileUpdaters::Go::Dep,
|
|
25
23
|
"go_modules" => FileUpdaters::Go::Modules,
|
|
26
24
|
"elm-package" => FileUpdaters::Elm::ElmPackage
|
|
Binary file
|
|
@@ -5,7 +5,6 @@ require "dependabot/metadata_finders/java_script/npm_and_yarn"
|
|
|
5
5
|
require "dependabot/metadata_finders/java/maven"
|
|
6
6
|
require "dependabot/metadata_finders/php/composer"
|
|
7
7
|
require "dependabot/metadata_finders/elixir/hex"
|
|
8
|
-
require "dependabot/metadata_finders/rust/cargo"
|
|
9
8
|
require "dependabot/metadata_finders/go/dep"
|
|
10
9
|
require "dependabot/metadata_finders/elm/elm_package"
|
|
11
10
|
|
|
@@ -18,7 +17,6 @@ module Dependabot
|
|
|
18
17
|
"gradle" => MetadataFinders::Java::Maven,
|
|
19
18
|
"composer" => MetadataFinders::Php::Composer,
|
|
20
19
|
"hex" => MetadataFinders::Elixir::Hex,
|
|
21
|
-
"cargo" => MetadataFinders::Rust::Cargo,
|
|
22
20
|
"dep" => MetadataFinders::Go::Dep,
|
|
23
21
|
"go_modules" => MetadataFinders::Go::Dep,
|
|
24
22
|
"elm-package" => MetadataFinders::Elm::ElmPackage
|
|
@@ -6,7 +6,6 @@ require "dependabot/update_checkers/java/maven"
|
|
|
6
6
|
require "dependabot/update_checkers/java/gradle"
|
|
7
7
|
require "dependabot/update_checkers/php/composer"
|
|
8
8
|
require "dependabot/update_checkers/elixir/hex"
|
|
9
|
-
require "dependabot/update_checkers/rust/cargo"
|
|
10
9
|
require "dependabot/update_checkers/go/dep"
|
|
11
10
|
require "dependabot/update_checkers/go/modules"
|
|
12
11
|
require "dependabot/update_checkers/elm/elm_package"
|
|
@@ -20,7 +19,6 @@ module Dependabot
|
|
|
20
19
|
"gradle" => UpdateCheckers::Java::Gradle,
|
|
21
20
|
"composer" => UpdateCheckers::Php::Composer,
|
|
22
21
|
"hex" => UpdateCheckers::Elixir::Hex,
|
|
23
|
-
"cargo" => UpdateCheckers::Rust::Cargo,
|
|
24
22
|
"dep" => UpdateCheckers::Go::Dep,
|
|
25
23
|
"go_modules" => UpdateCheckers::Go::Modules,
|
|
26
24
|
"elm-package" => UpdateCheckers::Elm::ElmPackage
|
data/lib/dependabot/utils.rb
CHANGED
|
@@ -4,7 +4,6 @@ require "dependabot/utils/elixir/version"
|
|
|
4
4
|
require "dependabot/utils/java/version"
|
|
5
5
|
require "dependabot/utils/java_script/version"
|
|
6
6
|
require "dependabot/utils/php/version"
|
|
7
|
-
require "dependabot/utils/rust/version"
|
|
8
7
|
require "dependabot/utils/go/version"
|
|
9
8
|
require "dependabot/utils/elm/version"
|
|
10
9
|
|
|
@@ -13,7 +12,6 @@ require "dependabot/utils/java/requirement"
|
|
|
13
12
|
require "dependabot/utils/java_script/requirement"
|
|
14
13
|
require "dependabot/utils/php/requirement"
|
|
15
14
|
require "dependabot/utils/ruby/requirement"
|
|
16
|
-
require "dependabot/utils/rust/requirement"
|
|
17
15
|
require "dependabot/utils/go/requirement"
|
|
18
16
|
require "dependabot/utils/elm/requirement"
|
|
19
17
|
|
|
@@ -30,7 +28,6 @@ module Dependabot
|
|
|
30
28
|
"npm_and_yarn" => Utils::JavaScript::Version,
|
|
31
29
|
"composer" => Utils::Php::Version,
|
|
32
30
|
"hex" => Utils::Elixir::Version,
|
|
33
|
-
"cargo" => Utils::Rust::Version,
|
|
34
31
|
"dep" => Utils::Go::Version,
|
|
35
32
|
"go_modules" => Utils::Go::Version,
|
|
36
33
|
"elm-package" => Utils::Elm::Version
|
|
@@ -56,7 +53,6 @@ module Dependabot
|
|
|
56
53
|
"npm_and_yarn" => Utils::JavaScript::Requirement,
|
|
57
54
|
"composer" => Utils::Php::Requirement,
|
|
58
55
|
"hex" => Utils::Elixir::Requirement,
|
|
59
|
-
"cargo" => Utils::Rust::Requirement,
|
|
60
56
|
"dep" => Utils::Go::Requirement,
|
|
61
57
|
"go_modules" => Utils::Go::Requirement,
|
|
62
58
|
"elm-package" => Utils::Elm::Requirement
|
data/lib/dependabot/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.81.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dependabot
|
|
@@ -389,7 +389,6 @@ files:
|
|
|
389
389
|
- lib/dependabot/file_fetchers/ruby/bundler/child_gemfile_finder.rb
|
|
390
390
|
- lib/dependabot/file_fetchers/ruby/bundler/path_gemspec_finder.rb
|
|
391
391
|
- lib/dependabot/file_fetchers/ruby/bundler/require_relative_finder.rb
|
|
392
|
-
- lib/dependabot/file_fetchers/rust/cargo.rb
|
|
393
392
|
- lib/dependabot/file_parsers.rb
|
|
394
393
|
- lib/dependabot/file_parsers/README.md
|
|
395
394
|
- lib/dependabot/file_parsers/base.rb
|
|
@@ -410,7 +409,6 @@ files:
|
|
|
410
409
|
- lib/dependabot/file_parsers/ruby/bundler.rb
|
|
411
410
|
- lib/dependabot/file_parsers/ruby/bundler/file_preparer.rb
|
|
412
411
|
- lib/dependabot/file_parsers/ruby/bundler/gemfile_checker.rb
|
|
413
|
-
- lib/dependabot/file_parsers/rust/cargo.rb
|
|
414
412
|
- lib/dependabot/file_updaters.rb
|
|
415
413
|
- lib/dependabot/file_updaters/README.md
|
|
416
414
|
- lib/dependabot/file_updaters/base.rb
|
|
@@ -443,6 +441,7 @@ files:
|
|
|
443
441
|
- lib/dependabot/file_updaters/php/composer.rb
|
|
444
442
|
- lib/dependabot/file_updaters/php/composer/lockfile_updater.rb
|
|
445
443
|
- lib/dependabot/file_updaters/php/composer/manifest_updater.rb
|
|
444
|
+
- lib/dependabot/file_updaters/ruby/.DS_Store
|
|
446
445
|
- lib/dependabot/file_updaters/ruby/bundler.rb
|
|
447
446
|
- lib/dependabot/file_updaters/ruby/bundler/gemfile_updater.rb
|
|
448
447
|
- lib/dependabot/file_updaters/ruby/bundler/gemspec_dependency_name_finder.rb
|
|
@@ -452,9 +451,6 @@ files:
|
|
|
452
451
|
- lib/dependabot/file_updaters/ruby/bundler/git_source_remover.rb
|
|
453
452
|
- lib/dependabot/file_updaters/ruby/bundler/lockfile_updater.rb
|
|
454
453
|
- lib/dependabot/file_updaters/ruby/bundler/requirement_replacer.rb
|
|
455
|
-
- lib/dependabot/file_updaters/rust/cargo.rb
|
|
456
|
-
- lib/dependabot/file_updaters/rust/cargo/lockfile_updater.rb
|
|
457
|
-
- lib/dependabot/file_updaters/rust/cargo/manifest_updater.rb
|
|
458
454
|
- lib/dependabot/git_commit_checker.rb
|
|
459
455
|
- lib/dependabot/metadata_finders.rb
|
|
460
456
|
- lib/dependabot/metadata_finders/README.md
|
|
@@ -470,7 +466,6 @@ files:
|
|
|
470
466
|
- lib/dependabot/metadata_finders/java_script/npm_and_yarn.rb
|
|
471
467
|
- lib/dependabot/metadata_finders/php/composer.rb
|
|
472
468
|
- lib/dependabot/metadata_finders/ruby/bundler.rb
|
|
473
|
-
- lib/dependabot/metadata_finders/rust/cargo.rb
|
|
474
469
|
- lib/dependabot/pull_request_creator.rb
|
|
475
470
|
- lib/dependabot/pull_request_creator/branch_namer.rb
|
|
476
471
|
- lib/dependabot/pull_request_creator/commit_signer.rb
|
|
@@ -525,10 +520,6 @@ files:
|
|
|
525
520
|
- lib/dependabot/update_checkers/ruby/bundler/ruby_requirement_setter.rb
|
|
526
521
|
- lib/dependabot/update_checkers/ruby/bundler/shared_bundler_helpers.rb
|
|
527
522
|
- lib/dependabot/update_checkers/ruby/bundler/version_resolver.rb
|
|
528
|
-
- lib/dependabot/update_checkers/rust/cargo.rb
|
|
529
|
-
- lib/dependabot/update_checkers/rust/cargo/file_preparer.rb
|
|
530
|
-
- lib/dependabot/update_checkers/rust/cargo/requirements_updater.rb
|
|
531
|
-
- lib/dependabot/update_checkers/rust/cargo/version_resolver.rb
|
|
532
523
|
- lib/dependabot/utils.rb
|
|
533
524
|
- lib/dependabot/utils/elixir/requirement.rb
|
|
534
525
|
- lib/dependabot/utils/elixir/version.rb
|
|
@@ -545,8 +536,6 @@ files:
|
|
|
545
536
|
- lib/dependabot/utils/php/requirement.rb
|
|
546
537
|
- lib/dependabot/utils/php/version.rb
|
|
547
538
|
- lib/dependabot/utils/ruby/requirement.rb
|
|
548
|
-
- lib/dependabot/utils/rust/requirement.rb
|
|
549
|
-
- lib/dependabot/utils/rust/version.rb
|
|
550
539
|
- lib/dependabot/version.rb
|
|
551
540
|
homepage: https://github.com/dependabot/dependabot-core
|
|
552
541
|
licenses:
|
|
@@ -568,7 +557,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
568
557
|
version: 2.7.3
|
|
569
558
|
requirements: []
|
|
570
559
|
rubyforge_project:
|
|
571
|
-
rubygems_version: 2.7.
|
|
560
|
+
rubygems_version: 2.7.6
|
|
572
561
|
signing_key:
|
|
573
562
|
specification_version: 4
|
|
574
563
|
summary: Automated dependency management
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require "pathname"
|
|
4
|
-
require "toml-rb"
|
|
5
|
-
|
|
6
|
-
require "dependabot/file_fetchers/base"
|
|
7
|
-
require "dependabot/file_parsers/rust/cargo"
|
|
8
|
-
|
|
9
|
-
# Docs on Cargo workspaces:
|
|
10
|
-
# https://doc.rust-lang.org/cargo/reference/manifest.html#the-workspace-section
|
|
11
|
-
module Dependabot
|
|
12
|
-
module FileFetchers
|
|
13
|
-
module Rust
|
|
14
|
-
class Cargo < Dependabot::FileFetchers::Base
|
|
15
|
-
def self.required_files_in?(filenames)
|
|
16
|
-
filenames.include?("Cargo.toml")
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def self.required_files_message
|
|
20
|
-
"Repo must contain a Cargo.toml."
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
def fetch_files
|
|
26
|
-
fetched_files = []
|
|
27
|
-
fetched_files << cargo_toml
|
|
28
|
-
fetched_files << cargo_lock if cargo_lock
|
|
29
|
-
fetched_files << rust_toolchain if rust_toolchain
|
|
30
|
-
fetched_files += workspace_files
|
|
31
|
-
fetched_files += path_dependency_files
|
|
32
|
-
fetched_files
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def workspace_files
|
|
36
|
-
@workspace_files ||=
|
|
37
|
-
fetch_workspace_files(
|
|
38
|
-
file: cargo_toml,
|
|
39
|
-
previously_fetched_files: []
|
|
40
|
-
)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def path_dependency_files
|
|
44
|
-
@path_dependency_files ||=
|
|
45
|
-
begin
|
|
46
|
-
fetched_path_dependency_files = []
|
|
47
|
-
[cargo_toml, *workspace_files].each do |file|
|
|
48
|
-
fetched_path_dependency_files +=
|
|
49
|
-
fetch_path_dependency_files(
|
|
50
|
-
file: file,
|
|
51
|
-
previously_fetched_files: [cargo_toml, *workspace_files] +
|
|
52
|
-
fetched_path_dependency_files
|
|
53
|
-
)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
fetched_path_dependency_files
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def fetch_workspace_files(file:, previously_fetched_files:)
|
|
61
|
-
current_dir = file.name.split("/")[0..-2].join("/")
|
|
62
|
-
current_dir = nil if current_dir == ""
|
|
63
|
-
|
|
64
|
-
workspace_dependency_paths_from_file(file).flat_map do |path|
|
|
65
|
-
path = File.join(current_dir, path) unless current_dir.nil?
|
|
66
|
-
path = Pathname.new(path).cleanpath.to_path
|
|
67
|
-
|
|
68
|
-
next if previously_fetched_files.map(&:name).include?(path)
|
|
69
|
-
next if file.name == path
|
|
70
|
-
|
|
71
|
-
fetched_file = fetch_file_from_host(path)
|
|
72
|
-
previously_fetched_files << fetched_file
|
|
73
|
-
grandchild_requirement_files =
|
|
74
|
-
fetch_workspace_files(
|
|
75
|
-
file: fetched_file,
|
|
76
|
-
previously_fetched_files: previously_fetched_files
|
|
77
|
-
)
|
|
78
|
-
[fetched_file, *grandchild_requirement_files]
|
|
79
|
-
end.compact
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def fetch_path_dependency_files(
|
|
83
|
-
file:,
|
|
84
|
-
previously_fetched_files:
|
|
85
|
-
)
|
|
86
|
-
current_dir = file.name.split("/")[0..-2].join("/")
|
|
87
|
-
current_dir = nil if current_dir == ""
|
|
88
|
-
|
|
89
|
-
path_dependency_paths_from_file(file).flat_map do |path|
|
|
90
|
-
path = File.join(current_dir, path) unless current_dir.nil?
|
|
91
|
-
path = Pathname.new(path).cleanpath.to_path
|
|
92
|
-
|
|
93
|
-
next if previously_fetched_files.map(&:name).include?(path)
|
|
94
|
-
next if file.name == path
|
|
95
|
-
|
|
96
|
-
fetched_file = fetch_file_from_host(path, type: "path_dependency").
|
|
97
|
-
tap { |f| f.support_file = true }
|
|
98
|
-
previously_fetched_files << fetched_file
|
|
99
|
-
grandchild_requirement_files =
|
|
100
|
-
fetch_path_dependency_files(
|
|
101
|
-
file: fetched_file,
|
|
102
|
-
previously_fetched_files: previously_fetched_files
|
|
103
|
-
)
|
|
104
|
-
[fetched_file, *grandchild_requirement_files]
|
|
105
|
-
rescue Dependabot::DependencyFileNotFound
|
|
106
|
-
raise if required_path?(file, path)
|
|
107
|
-
end.compact
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def path_dependency_paths_from_file(file)
|
|
111
|
-
paths = []
|
|
112
|
-
|
|
113
|
-
# Paths specified in dependency declaration
|
|
114
|
-
FileParsers::Rust::Cargo::DEPENDENCY_TYPES.each do |type|
|
|
115
|
-
parsed_file(file).fetch(type, {}).each do |_, details|
|
|
116
|
-
next unless details.is_a?(Hash)
|
|
117
|
-
next unless details["path"]
|
|
118
|
-
|
|
119
|
-
paths << File.join(details["path"], "Cargo.toml")
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
# Paths specified for target-specific dependencies
|
|
124
|
-
parsed_file(file).fetch("target", {}).each do |_, t_details|
|
|
125
|
-
FileParsers::Rust::Cargo::DEPENDENCY_TYPES.each do |type|
|
|
126
|
-
t_details.fetch(type, {}).each do |_, details|
|
|
127
|
-
next unless details.is_a?(Hash)
|
|
128
|
-
next unless details["path"]
|
|
129
|
-
|
|
130
|
-
paths << File.join(details["path"], "Cargo.toml")
|
|
131
|
-
end
|
|
132
|
-
end
|
|
133
|
-
end
|
|
134
|
-
|
|
135
|
-
# Paths specified as replacements
|
|
136
|
-
parsed_file(file).fetch("replace", {}).each do |_, details|
|
|
137
|
-
next unless details.is_a?(Hash)
|
|
138
|
-
next unless details["path"]
|
|
139
|
-
|
|
140
|
-
paths << File.join(details["path"], "Cargo.toml")
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
paths
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
def workspace_dependency_paths_from_file(file)
|
|
147
|
-
workspace_paths = parsed_file(file).dig("workspace", "members")
|
|
148
|
-
return [] unless workspace_paths&.any?
|
|
149
|
-
|
|
150
|
-
# Expand any workspace paths that specify a `*`
|
|
151
|
-
workspace_paths = workspace_paths.flat_map do |path|
|
|
152
|
-
path.end_with?("*") ? expand_workspaces(path) : [path]
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
# Excluded paths, to be subtracted for the workspaces array
|
|
156
|
-
excluded_paths = parsed_file(file).dig("workspace", "excluded_paths")
|
|
157
|
-
|
|
158
|
-
(workspace_paths - (excluded_paths || [])).map do |path|
|
|
159
|
-
File.join(path, "Cargo.toml")
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
|
|
163
|
-
# Check whether a path is required or not. It will not be required if
|
|
164
|
-
# an alternative source (i.e., a git source) is also specified
|
|
165
|
-
# rubocop:disable Metrics/AbcSize
|
|
166
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
|
167
|
-
# rubocop:disable Metrics/PerceivedComplexity
|
|
168
|
-
def required_path?(file, path)
|
|
169
|
-
# Paths specified in dependency declaration
|
|
170
|
-
FileParsers::Rust::Cargo::DEPENDENCY_TYPES.each do |type|
|
|
171
|
-
parsed_file(file).fetch(type, {}).each do |_, details|
|
|
172
|
-
next unless details.is_a?(Hash)
|
|
173
|
-
next unless details["path"]
|
|
174
|
-
next unless path == File.join(details["path"], "Cargo.toml")
|
|
175
|
-
|
|
176
|
-
return true if details["git"].nil?
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
# Paths specified for target-specific dependencies
|
|
181
|
-
parsed_file(file).fetch("target", {}).each do |_, t_details|
|
|
182
|
-
FileParsers::Rust::Cargo::DEPENDENCY_TYPES.each do |type|
|
|
183
|
-
t_details.fetch(type, {}).each do |_, details|
|
|
184
|
-
next unless details.is_a?(Hash)
|
|
185
|
-
next unless details["path"]
|
|
186
|
-
next unless path == File.join(details["path"], "Cargo.toml")
|
|
187
|
-
|
|
188
|
-
return true if details["git"].nil?
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
# Paths specified as replacements
|
|
194
|
-
parsed_file(file).fetch("replace", {}).each do |_, details|
|
|
195
|
-
next unless details.is_a?(Hash)
|
|
196
|
-
next unless details["path"]
|
|
197
|
-
next unless path == File.join(details["path"], "Cargo.toml")
|
|
198
|
-
|
|
199
|
-
return true if details["git"].nil?
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
false
|
|
203
|
-
end
|
|
204
|
-
# rubocop:enable Metrics/AbcSize
|
|
205
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
|
206
|
-
# rubocop:enable Metrics/PerceivedComplexity
|
|
207
|
-
|
|
208
|
-
def expand_workspaces(path)
|
|
209
|
-
path = Pathname.new(path).cleanpath.to_path
|
|
210
|
-
dir = directory.gsub(%r{(^/|/$)}, "")
|
|
211
|
-
unglobbed_path = path.split("*").first.gsub(%r{(?<=/)[^/]*$}, "")
|
|
212
|
-
|
|
213
|
-
repo_contents(dir: unglobbed_path, raise_errors: false).
|
|
214
|
-
select { |file| file.type == "dir" }.
|
|
215
|
-
map { |f| f.path.gsub(%r{^/?#{Regexp.escape(dir)}/?}, "") }.
|
|
216
|
-
select { |filename| File.fnmatch?(path, filename) }
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
def parsed_file(file)
|
|
220
|
-
TomlRB.parse(file.content)
|
|
221
|
-
rescue TomlRB::ParseError
|
|
222
|
-
raise Dependabot::DependencyFileNotParseable, file.path
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
def cargo_toml
|
|
226
|
-
@cargo_toml ||= fetch_file_from_host("Cargo.toml")
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
def cargo_lock
|
|
230
|
-
@cargo_lock ||= fetch_file_if_present("Cargo.lock")
|
|
231
|
-
end
|
|
232
|
-
|
|
233
|
-
def rust_toolchain
|
|
234
|
-
@rust_toolchain ||= fetch_file_if_present("rust-toolchain")&.
|
|
235
|
-
tap { |f| f.support_file = true }
|
|
236
|
-
end
|
|
237
|
-
end
|
|
238
|
-
end
|
|
239
|
-
end
|
|
240
|
-
end
|