dependabot-hex 0.261.0 → 0.261.1
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 27d33792dfe1e80e7983633d35c802b8e740e597b27511bbf5b62d7d53d2524e
|
|
4
|
+
data.tar.gz: f8a13617553b91170a7dca0a50ebdb3a9d68326961c3919851119e1b6b08b972
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d21ffaea5f67baf3b4c937d578cc1f2f7dc5945d7cdc90e6f7bd28a38309f58b2821aff0df65d41aa3be7d970995bc8792045f23a83da1c4c79f16b730b14e3c
|
|
7
|
+
data.tar.gz: ab89c2440795290fd4088ed5b6d7d705d8d4b2d33f96e396ea3e5c56492c9ab7f943783282cb91b28759ce10e3c00982a27ef0b57c9bb5bb9bbd583cffcdd726
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
# typed:
|
|
1
|
+
# typed: strict
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
+
require "sorbet-runtime"
|
|
5
|
+
|
|
4
6
|
module Dependabot
|
|
5
7
|
module Hex
|
|
6
8
|
module CredentialHelpers
|
|
9
|
+
extend T::Sig
|
|
10
|
+
|
|
11
|
+
sig { params(credentials: T::Array[Dependabot::Credential]).returns(T::Array[Dependabot::Credential]) }
|
|
7
12
|
def self.hex_credentials(credentials)
|
|
8
13
|
organization_credentials(credentials) + repo_credentials(credentials)
|
|
9
14
|
end
|
|
10
15
|
|
|
16
|
+
sig { params(credentials: T.untyped).returns(T::Array[Dependabot::Credential]) }
|
|
11
17
|
def self.organization_credentials(credentials)
|
|
12
18
|
defaults = Dependabot::Credential.new({ "organization" => "", "token" => "" })
|
|
13
19
|
keys = %w(type organization token)
|
|
@@ -16,7 +22,7 @@ module Dependabot
|
|
|
16
22
|
.select { |cred| cred["type"] == "hex_organization" }
|
|
17
23
|
.flat_map { |cred| defaults.merge(cred).slice(*keys).values }
|
|
18
24
|
end
|
|
19
|
-
|
|
25
|
+
sig { params(credentials: T::Array[Dependabot::Credential]).returns(T::Array[Dependabot::Credential]) }
|
|
20
26
|
def self.repo_credentials(credentials)
|
|
21
27
|
# Credentials are serialized as an array that may not have optional fields. Using a
|
|
22
28
|
# default ensures that the array is always the same length, even if values are empty.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
# typed:
|
|
1
|
+
# typed: strict
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
+
require "sorbet-runtime"
|
|
4
5
|
require "dependabot/dependency"
|
|
5
6
|
require "dependabot/file_parsers"
|
|
6
7
|
require "dependabot/file_parsers/base"
|
|
@@ -13,8 +14,10 @@ require "dependabot/errors"
|
|
|
13
14
|
module Dependabot
|
|
14
15
|
module Hex
|
|
15
16
|
class FileParser < Dependabot::FileParsers::Base
|
|
17
|
+
extend T::Sig
|
|
16
18
|
require "dependabot/file_parsers/base/dependency_set"
|
|
17
19
|
|
|
20
|
+
sig { override.returns(T::Array[Dependabot::Dependency]) }
|
|
18
21
|
def parse
|
|
19
22
|
# TODO: git sourced dependency's mixfiles are evaluated. Provide guards before removing this.
|
|
20
23
|
raise ::Dependabot::UnexpectedExternalCode if @reject_external_code
|
|
@@ -43,11 +46,12 @@ module Dependabot
|
|
|
43
46
|
|
|
44
47
|
private
|
|
45
48
|
|
|
49
|
+
sig { returns(T::Array[T.any(T::Hash[String, String], T::Hash[String, T.untyped])]) }
|
|
46
50
|
def dependency_details
|
|
47
51
|
SharedHelpers.in_a_temporary_directory do
|
|
48
52
|
write_sanitized_mixfiles
|
|
49
53
|
write_sanitized_supporting_files
|
|
50
|
-
File.write("mix.lock", lockfile
|
|
54
|
+
File.write("mix.lock", lockfile&.content) if lockfile
|
|
51
55
|
FileUtils.cp(elixir_helper_parse_deps_path, "parse_deps.exs")
|
|
52
56
|
|
|
53
57
|
SharedHelpers.run_helper_subprocess(
|
|
@@ -69,28 +73,32 @@ module Dependabot
|
|
|
69
73
|
JSON.parse(result_json).fetch("result")
|
|
70
74
|
end
|
|
71
75
|
|
|
76
|
+
sig { void }
|
|
72
77
|
def write_sanitized_mixfiles
|
|
73
78
|
mixfiles.each do |file|
|
|
74
79
|
path = file.name
|
|
75
80
|
FileUtils.mkdir_p(Pathname.new(path).dirname)
|
|
76
|
-
File.write(path, sanitize_mixfile(file.content))
|
|
81
|
+
File.write(path, sanitize_mixfile(T.must(file.content)))
|
|
77
82
|
end
|
|
78
83
|
end
|
|
79
84
|
|
|
85
|
+
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
80
86
|
def write_sanitized_supporting_files
|
|
81
87
|
dependency_files.select(&:support_file).each do |file|
|
|
82
88
|
path = file.name
|
|
83
89
|
FileUtils.mkdir_p(Pathname.new(path).dirname)
|
|
84
|
-
File.write(path, sanitize_mixfile(file.content))
|
|
90
|
+
File.write(path, sanitize_mixfile(T.must(file.content)))
|
|
85
91
|
end
|
|
86
92
|
end
|
|
87
93
|
|
|
94
|
+
sig { params(content: String).returns(String) }
|
|
88
95
|
def sanitize_mixfile(content)
|
|
89
96
|
Hex::FileUpdater::MixfileSanitizer.new(
|
|
90
97
|
mixfile_content: content
|
|
91
98
|
).sanitized_content
|
|
92
99
|
end
|
|
93
100
|
|
|
101
|
+
sig { returns(T::Hash[String, String]) }
|
|
94
102
|
def mix_env
|
|
95
103
|
{
|
|
96
104
|
"MIX_EXS" => File.join(NativeHelpers.hex_helpers_dir, "mix.exs"),
|
|
@@ -100,28 +108,34 @@ module Dependabot
|
|
|
100
108
|
}
|
|
101
109
|
end
|
|
102
110
|
|
|
111
|
+
sig { returns(String) }
|
|
103
112
|
def elixir_helper_path
|
|
104
113
|
File.join(NativeHelpers.hex_helpers_dir, "lib/run.exs")
|
|
105
114
|
end
|
|
106
115
|
|
|
116
|
+
sig { returns(String) }
|
|
107
117
|
def elixir_helper_parse_deps_path
|
|
108
118
|
File.join(NativeHelpers.hex_helpers_dir, "lib/parse_deps.exs")
|
|
109
119
|
end
|
|
110
120
|
|
|
121
|
+
sig { override.void }
|
|
111
122
|
def check_required_files
|
|
112
123
|
raise "No mixfile!" if mixfiles.none?
|
|
113
124
|
end
|
|
114
125
|
|
|
126
|
+
sig { params(hash: T::Hash[String, String]).returns(T::Hash[Symbol, T.nilable(String)]) }
|
|
115
127
|
def symbolize_keys(hash)
|
|
116
128
|
hash.keys.to_h { |k| [k.to_sym, hash[k]] }
|
|
117
129
|
end
|
|
118
130
|
|
|
131
|
+
sig { returns(T::Array[Dependabot::DependencyFile]) }
|
|
119
132
|
def mixfiles
|
|
120
133
|
dependency_files.select { |f| f.name.end_with?("mix.exs") }
|
|
121
134
|
end
|
|
122
135
|
|
|
136
|
+
sig { returns(T.nilable(Dependabot::DependencyFile)) }
|
|
123
137
|
def lockfile
|
|
124
|
-
@lockfile ||= get_original_file("mix.lock")
|
|
138
|
+
@lockfile ||= T.let(get_original_file("mix.lock"), T.nilable(Dependabot::DependencyFile))
|
|
125
139
|
end
|
|
126
140
|
end
|
|
127
141
|
end
|
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
# typed:
|
|
1
|
+
# typed: strict
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
4
|
require "dependabot/hex/file_updater"
|
|
5
5
|
require "dependabot/shared_helpers"
|
|
6
|
+
require "sorbet-runtime"
|
|
6
7
|
|
|
7
8
|
module Dependabot
|
|
8
9
|
module Hex
|
|
9
10
|
class FileUpdater
|
|
10
11
|
class MixfileSanitizer
|
|
12
|
+
extend T::Sig
|
|
13
|
+
sig { params(mixfile_content: String).void }
|
|
11
14
|
def initialize(mixfile_content:)
|
|
12
15
|
@mixfile_content = mixfile_content
|
|
13
16
|
end
|
|
14
17
|
|
|
15
18
|
FILE_READ = /File.read\(.*?\)/
|
|
16
19
|
FILE_READ_BANG = /File.read!\(.*?\)/
|
|
17
|
-
PIPE = Regexp.escape("|>").freeze
|
|
20
|
+
PIPE = T.let(Regexp.escape("|>").freeze, String)
|
|
18
21
|
VERSION_FILE = /"VERSION"/i
|
|
19
22
|
|
|
20
23
|
NESTED_VERSION_FILE_READ = /String\.trim\(#{FILE_READ}\)/
|
|
@@ -22,18 +25,25 @@ module Dependabot
|
|
|
22
25
|
PIPED_VERSION_FILE_READ = /#{VERSION_FILE}[[:space:]]+#{PIPE}[[:space:]]+#{FILE_READ}/
|
|
23
26
|
PIPED_VERSION_FILE_READ_BANG = /#{VERSION_FILE}[[:space:]]+#{PIPE}[[:space:]]+#{FILE_READ_BANG}/
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
sig { returns(String) }
|
|
26
29
|
def sanitized_content
|
|
27
|
-
mixfile_content
|
|
28
|
-
.then(
|
|
29
|
-
.then(
|
|
30
|
+
@mixfile_content
|
|
31
|
+
.then { |content| prevent_version_file_loading(content) }
|
|
32
|
+
.then { |content| prevent_config_path_loading(content) }
|
|
30
33
|
end
|
|
31
|
-
# rubocop:enable Performance/MethodObjectAsBlock
|
|
32
34
|
|
|
33
35
|
private
|
|
34
36
|
|
|
37
|
+
sig { returns(String) }
|
|
35
38
|
attr_reader :mixfile_content
|
|
36
39
|
|
|
40
|
+
sig { params(configuration: String).returns(String) }
|
|
41
|
+
def prevent_config_path_loading(configuration)
|
|
42
|
+
configuration
|
|
43
|
+
.gsub(/^\s*config_path:.*(?:,|$)/, "")
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
sig { params(configuration: String).returns(String) }
|
|
37
47
|
def prevent_version_file_loading(configuration)
|
|
38
48
|
configuration
|
|
39
49
|
.gsub(NESTED_VERSION_FILE_READ_BANG, 'String.trim("0.0.1")')
|
|
@@ -41,11 +51,6 @@ module Dependabot
|
|
|
41
51
|
.gsub(PIPED_VERSION_FILE_READ, '{:ok, "0.0.1"}')
|
|
42
52
|
.gsub(PIPED_VERSION_FILE_READ_BANG, '"0.0.1"')
|
|
43
53
|
end
|
|
44
|
-
|
|
45
|
-
def prevent_config_path_loading(configuration)
|
|
46
|
-
configuration
|
|
47
|
-
.gsub(/^\s*config_path:.*(?:,|$)/, "")
|
|
48
|
-
end
|
|
49
54
|
end
|
|
50
55
|
end
|
|
51
56
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dependabot-hex
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.261.
|
|
4
|
+
version: 0.261.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dependabot
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-06-
|
|
11
|
+
date: 2024-06-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dependabot-common
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0.261.
|
|
19
|
+
version: 0.261.1
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0.261.
|
|
26
|
+
version: 0.261.1
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: debug
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -272,7 +272,7 @@ licenses:
|
|
|
272
272
|
- MIT
|
|
273
273
|
metadata:
|
|
274
274
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
|
275
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.261.
|
|
275
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.261.1
|
|
276
276
|
post_install_message:
|
|
277
277
|
rdoc_options: []
|
|
278
278
|
require_paths:
|