dependabot-common 0.244.0 → 0.245.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/lib/dependabot/clients/bitbucket_with_retries.rb +34 -10
- data/lib/dependabot/git_commit_checker.rb +1 -1
- data/lib/dependabot/shared_helpers.rb +19 -1
- data/lib/dependabot.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbc9b9fbba7549f6bdbb7dafec2f3d3111bd2e8263e966b3eaf1bfce19be3a01
|
4
|
+
data.tar.gz: 2e396338454b56410104329634792a20076533cadf2418f15e74d591612969eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2cc3166e278f88f679a7d177b74d77ba9d8cd48ac22694db65a61a36bf5386efb7fd459e430f971cad2e21f33253e67f1e264137fcfc48b57d3d41480c71f9f9
|
7
|
+
data.tar.gz: fc85175d8dfe6020bc3737fec46342fe529371e984d0f1d806195c697124ff6c63418edc7a1135a30c1c2ceff6caf28be2a715463c466c6bfa3267b5b0249b8a
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: strict
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
4
|
require_relative "bitbucket"
|
@@ -6,15 +6,18 @@ require_relative "bitbucket"
|
|
6
6
|
module Dependabot
|
7
7
|
module Clients
|
8
8
|
class BitbucketWithRetries
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
extend T::Sig
|
10
|
+
|
11
|
+
RETRYABLE_ERRORS = T.let(
|
12
|
+
[Excon::Error::Timeout, Excon::Error::Socket].freeze,
|
13
|
+
T::Array[T.class_of(Excon::Error)]
|
14
|
+
)
|
13
15
|
|
14
16
|
#######################
|
15
17
|
# Constructor methods #
|
16
18
|
#######################
|
17
19
|
|
20
|
+
sig { params(credentials: T::Array[Dependabot::Credential]).returns(BitbucketWithRetries) }
|
18
21
|
def self.for_bitbucket_dot_org(credentials:)
|
19
22
|
credential =
|
20
23
|
credentials
|
@@ -28,27 +31,48 @@ module Dependabot
|
|
28
31
|
# Proxying #
|
29
32
|
############
|
30
33
|
|
31
|
-
|
32
|
-
|
33
|
-
@
|
34
|
+
sig { params(credentials: T.nilable(Dependabot::Credential), max_retries: T.nilable(Integer)).void }
|
35
|
+
def initialize(credentials:, max_retries: 3)
|
36
|
+
@max_retries = T.let(max_retries || 3, Integer)
|
37
|
+
@client = T.let(Bitbucket.new(credentials: credentials), Dependabot::Clients::Bitbucket)
|
34
38
|
end
|
35
39
|
|
40
|
+
sig do
|
41
|
+
params(
|
42
|
+
method_name: T.any(Symbol, String),
|
43
|
+
args: T.untyped,
|
44
|
+
block: T.nilable(T.proc.returns(T.untyped))
|
45
|
+
)
|
46
|
+
.returns(T.untyped)
|
47
|
+
end
|
36
48
|
def method_missing(method_name, *args, &block)
|
37
49
|
retry_connection_failures do
|
38
50
|
if @client.respond_to?(method_name)
|
39
51
|
mutatable_args = args.map(&:dup)
|
40
|
-
@client.public_send(method_name, *mutatable_args, &block)
|
52
|
+
T.unsafe(@client).public_send(method_name, *mutatable_args, &block)
|
41
53
|
else
|
42
54
|
super
|
43
55
|
end
|
44
56
|
end
|
45
57
|
end
|
46
58
|
|
59
|
+
sig do
|
60
|
+
params(
|
61
|
+
method_name: Symbol,
|
62
|
+
include_private: T::Boolean
|
63
|
+
)
|
64
|
+
.returns(T::Boolean)
|
65
|
+
end
|
47
66
|
def respond_to_missing?(method_name, include_private = false)
|
48
67
|
@client.respond_to?(method_name) || super
|
49
68
|
end
|
50
69
|
|
51
|
-
|
70
|
+
sig do
|
71
|
+
type_parameters(:T)
|
72
|
+
.params(_blk: T.proc.returns(T.type_parameter(:T)))
|
73
|
+
.returns(T.type_parameter(:T))
|
74
|
+
end
|
75
|
+
def retry_connection_failures(&_blk)
|
52
76
|
retry_attempt = 0
|
53
77
|
|
54
78
|
begin
|
@@ -393,7 +393,7 @@ module Dependabot
|
|
393
393
|
client = Clients::BitbucketWithRetries
|
394
394
|
.for_bitbucket_dot_org(credentials: credentials)
|
395
395
|
|
396
|
-
response = client.get(url)
|
396
|
+
response = T.unsafe(client).get(url)
|
397
397
|
|
398
398
|
# Conservatively assume that ref2 is ahead in the equality case, of
|
399
399
|
# if we get an unexpected format (e.g., due to a 404)
|
@@ -405,7 +405,6 @@ module Dependabot
|
|
405
405
|
stderr_to_stdout: true)
|
406
406
|
start = Time.now
|
407
407
|
cmd = allow_unsafe_shell_command ? command : escape_command(command)
|
408
|
-
|
409
408
|
if stderr_to_stdout
|
410
409
|
stdout, process = Open3.capture2e(env || {}, cmd)
|
411
410
|
else
|
@@ -425,12 +424,31 @@ module Dependabot
|
|
425
424
|
process_exit_value: process.to_s
|
426
425
|
}
|
427
426
|
|
427
|
+
check_out_of_disk_memory_error(stderr, error_context)
|
428
|
+
|
428
429
|
raise SharedHelpers::HelperSubprocessFailed.new(
|
429
430
|
message: stderr_to_stdout ? stdout : "#{stderr}\n#{stdout}",
|
430
431
|
error_context: error_context
|
431
432
|
)
|
432
433
|
end
|
433
434
|
|
435
|
+
sig { params(stderr: T.nilable(String), error_context: T::Hash[Symbol, String]).void }
|
436
|
+
def self.check_out_of_disk_memory_error(stderr, error_context)
|
437
|
+
if stderr&.include?("No space left on device") || stderr&.include?("Out of diskspace")
|
438
|
+
raise HelperSubprocessFailed.new(
|
439
|
+
message: "No space left on device",
|
440
|
+
error_class: "Dependabot::OutOfDisk",
|
441
|
+
error_context: error_context
|
442
|
+
)
|
443
|
+
elsif stderr&.include?("MemoryError")
|
444
|
+
raise HelperSubprocessFailed.new(
|
445
|
+
message: "MemoryError",
|
446
|
+
error_class: "Dependabot::OutOfMemory",
|
447
|
+
error_context: error_context
|
448
|
+
)
|
449
|
+
end
|
450
|
+
end
|
451
|
+
|
434
452
|
sig { params(command: String, stdin_data: String, env: T.nilable(T::Hash[String, String])).returns(String) }
|
435
453
|
def self.helper_subprocess_bash_command(command:, stdin_data:, env:)
|
436
454
|
escaped_stdin_data = stdin_data.gsub("\"", "\\\"")
|
data/lib/dependabot.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-common
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.245.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-02-
|
11
|
+
date: 2024-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-codecommit
|
@@ -567,7 +567,7 @@ licenses:
|
|
567
567
|
- Nonstandard
|
568
568
|
metadata:
|
569
569
|
bug_tracker_uri: https://github.com/dependabot/dependabot-core/issues
|
570
|
-
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.
|
570
|
+
changelog_uri: https://github.com/dependabot/dependabot-core/releases/tag/v0.245.0
|
571
571
|
post_install_message:
|
572
572
|
rdoc_options: []
|
573
573
|
require_paths:
|