dependabot-silent 0.260.0 → 0.261.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58bb254ca97253e0eaafbf3b7858237e084c29f63a0fe80aa89a877bd391ad6a
4
- data.tar.gz: d0c1f391350c5d98b0bdcea903d80b70696d601683309026507f4def8206d098
3
+ metadata.gz: bd454d4abeedb40cae28ad0e216a0cdb98bd676e3305391f0fdee33f43c16a66
4
+ data.tar.gz: c9374c8d5f8bda9be6651ced6092de0b87977b31a150128bca0e48b3f6d8f4cc
5
5
  SHA512:
6
- metadata.gz: 33c5e0e7248b9f19c68019dcf5e6b1c1a18feb82b10419ba31f0c677f477c40ee86cfe2cc32b2afcc90100f4558eed0b4d87804c50e14e8cb2828a018bf17700
7
- data.tar.gz: 28fcfb89356c9c83ffb1b30a36559b6c80ccb9e8ef6c4ab8ba841c17fa7e15e94dbb0f9c13372a47ca850f1c23615b97b40f655f0912c007296a840549a57004
6
+ metadata.gz: fc2ccc336fa85f7470acc643a0a319dbd9db7c74c547729feb5533f57681b16a6c843f359b246a33cf7a83658fdfc5a65760d46681082bc3cd432a04a37fdff0
7
+ data.tar.gz: 348f0a6fd8d44b0b2178ee9a4e9199a34dc303090c58a1f028b82438319684c0cf8863f2f3a77343b4c212a9569dd61e26ef6df1247c506617ea2d5c1dc5e67b
@@ -1,17 +1,22 @@
1
- # typed: true
1
+ # typed: strong
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/file_fetchers"
5
5
  require "dependabot/file_fetchers/base"
6
+ require "sorbet-runtime"
6
7
 
7
8
  module SilentPackageManager
8
9
  class FileFetcher < Dependabot::FileFetchers::Base
10
+ extend T::Sig
11
+
12
+ sig { override.returns(T::Array[Dependabot::DependencyFile]) }
9
13
  def fetch_files
10
14
  [manifest].compact
11
15
  end
12
16
 
13
17
  private
14
18
 
19
+ sig { returns(T.nilable(Dependabot::DependencyFile)) }
15
20
  def manifest
16
21
  fetch_file_if_present("manifest.json")
17
22
  end
@@ -1,14 +1,18 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/dependency"
5
5
  require "dependabot/file_parsers"
6
6
  require "dependabot/file_parsers/base"
7
+ require "sorbet-runtime"
7
8
 
8
9
  module SilentPackageManager
9
10
  class FileParser < Dependabot::FileParsers::Base
11
+ extend T::Sig
12
+
10
13
  require "dependabot/file_parsers/base/dependency_set"
11
14
 
15
+ sig { override.returns(T::Array[Dependabot::Dependency]) }
12
16
  def parse
13
17
  dependency_set = DependencySet.new
14
18
 
@@ -24,6 +28,7 @@ module SilentPackageManager
24
28
 
25
29
  private
26
30
 
31
+ sig { params(name: String, info: String).returns(Dependabot::Dependency) }
27
32
  def parse_single_dependency(name, info)
28
33
  Dependabot::Dependency.new(
29
34
  name: name,
@@ -40,19 +45,22 @@ module SilentPackageManager
40
45
 
41
46
  # To match the behavior of npm_and_yarn, this returns one Dependency but has
42
47
  # a metadata field that includes all the versions of the Dependency.
48
+ sig { params(name: String, info: String).returns(Dependabot::Dependency) }
43
49
  def parse_multiple_dependency(name, info)
44
- dependencies = info["versions"].map do |version|
50
+ dependencies = Array(info["versions"]).map do |version|
45
51
  info["version"] = version
46
52
  parse_single_dependency(name, info)
47
53
  end
48
- dependencies.last.metadata[:all_versions] = dependencies
49
- dependencies.last
54
+ T.must(dependencies.last).metadata[:all_versions] = dependencies
55
+ T.must(dependencies.last)
50
56
  end
51
57
 
58
+ sig { returns(String) }
52
59
  def manifest_content
53
60
  T.must(T.must(dependency_files.first).content)
54
61
  end
55
62
 
63
+ sig { override.void }
56
64
  def check_required_files
57
65
  # Just check if there are any files at all.
58
66
  return if dependency_files.any?
@@ -1,17 +1,21 @@
1
- # typed: true
1
+ # typed: strict
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require "dependabot/file_updaters"
5
5
  require "dependabot/file_updaters/base"
6
+ require "sorbet-runtime"
6
7
 
7
8
  module SilentPackageManager
8
9
  class FileUpdater < Dependabot::FileUpdaters::Base
10
+ extend T::Sig
11
+
12
+ sig { override.returns(T::Array[Dependabot::DependencyFile]) }
9
13
  def updated_dependency_files
10
- return [] if dependency.name == "dont-update-any-files"
14
+ return [] if dependency&.name == "dont-update-any-files"
11
15
 
12
16
  updated_files = []
13
17
  dependency_files.each do |file|
14
- next unless requirement_changed?(file, dependency)
18
+ next unless requirement_changed?(file, T.must(dependency))
15
19
 
16
20
  updated_files << updated_file(file: file, content: updated_file_content(file))
17
21
  end
@@ -24,11 +28,13 @@ module SilentPackageManager
24
28
 
25
29
  private
26
30
 
31
+ sig { returns(T.nilable(Dependabot::Dependency)) }
27
32
  def dependency
28
33
  # Dockerfiles will only ever be updating a single dependency
29
34
  dependencies.first
30
35
  end
31
36
 
37
+ sig { override.void }
32
38
  def check_required_files
33
39
  # Just check if there are any files at all.
34
40
  return if dependency_files.any?
@@ -36,18 +42,19 @@ module SilentPackageManager
36
42
  raise "No dependency files!"
37
43
  end
38
44
 
45
+ sig { params(file: Dependabot::DependencyFile).returns(String) }
39
46
  def updated_file_content(file)
40
- original_content = JSON.parse(file.content)
47
+ original_content = JSON.parse(T.must(file.content))
41
48
  original_content.each do |name, info|
42
- next unless name == dependency.name
49
+ next unless name == dependency&.name
43
50
 
44
51
  # If this was a multi-version update, assume we've updated all versions to be the same.
45
52
  info.delete("versions") if info["versions"]
46
53
 
47
- info["version"] = requirements(file).first[:requirement]
54
+ info["version"] = requirements(file).first&.fetch(:requirement)
48
55
  if info["depends-on"]
49
56
  # also bump dependants to the same version
50
- original_content[info["depends-on"]]["version"] = requirements(file).first[:requirement]
57
+ original_content[info["depends-on"]]["version"] = requirements(file).first&.fetch(:requirement)
51
58
  end
52
59
  end
53
60
  c = JSON.pretty_generate(original_content)
@@ -55,14 +62,14 @@ module SilentPackageManager
55
62
  c
56
63
  end
57
64
 
65
+ sig { params(file: Dependabot::DependencyFile).returns(T::Array[T::Hash[Symbol, String]]) }
58
66
  def requirements(file)
59
- dependency.requirements
60
- .select { |r| r[:file] == file.name }
67
+ dependency&.requirements&.filter { |r| r[:file] == file.name } || []
61
68
  end
62
69
 
70
+ sig { params(file: T.untyped).returns(T::Array[T::Hash[Symbol, String]]) }
63
71
  def previous_requirements(file)
64
- dependency.previous_requirements
65
- .select { |r| r[:file] == file.name }
72
+ dependency&.previous_requirements&.filter { |r| r[:file] == file.name } || []
66
73
  end
67
74
  end
68
75
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-silent
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.260.0
4
+ version: 0.261.0
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-06 00:00:00.000000000 Z
11
+ date: 2024-06-13 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.260.0
19
+ version: 0.261.0
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.260.0
26
+ version: 0.261.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: debug
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -253,7 +253,7 @@ licenses:
253
253
  - MIT
254
254
  metadata:
255
255
  bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
256
- changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.260.0
256
+ changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.261.0
257
257
  post_install_message:
258
258
  rdoc_options: []
259
259
  require_paths: