dependabot-common 0.107.38 → 0.107.39

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: 87107d8dcd8080674df12b398f7304c2c4f4fc5f484d3d7f22ba942f6acca871
4
- data.tar.gz: dff061c0576abd74f8a17d25e4feae6e75846b48304a32dd41a524d2e40b5fec
3
+ metadata.gz: 56e7de376cfb9c603012064cfe624aae34c07b88f5b2325d0215d415cc4733a7
4
+ data.tar.gz: a515e1a0e6a524937300d5eb6cddeed921062d94af2713703e0759a2b2d641be
5
5
  SHA512:
6
- metadata.gz: c41075e6afd57360df73fdda1300f85b481e991d4353d1a46c17395ae49a99c42f3b81cc07cd8c89b9395d9c0060fff3a0782e22cda3dfda10c10149ab6ecbfd
7
- data.tar.gz: 1dfdce6493a9a0378e57eeaeaeb302fa562e398710c2a5bc80b01003999c7d809e4e74a03044929fbfe3bd0b9a35126254b8538aa6a9eb701d479fb81290688e
6
+ metadata.gz: cceb9069a19f86d58fbd3f62325c6ec6260169f122f7049b9646f61ddfdeb37cdbac32304000a8dee278952e1feae13b6f85d549b3f9a41f34ccaf4f8f636334
7
+ data.tar.gz: 8410db69a173af78bd381e59b0034e1979b87bbe84cdc43a3130a895b8d5ab3c59b81f217c5904037db24b6e8e42020fed5541fc4c55070f3ce678c73b536bc3
@@ -10,24 +10,11 @@ module Dependabot
10
10
  class Unauthorized < StandardError; end
11
11
  class Forbidden < StandardError; end
12
12
 
13
- #######################
14
- # Constructor methods #
15
- #######################
16
-
17
- def self.for_bitbucket_dot_org(credentials:)
18
- credential =
19
- credentials.
20
- select { |cred| cred["type"] == "git_source" }.
21
- find { |cred| cred["host"] == "bitbucket.org" }
22
-
23
- new(credential)
24
- end
25
-
26
13
  ##########
27
14
  # Client #
28
15
  ##########
29
16
 
30
- def initialize(credentials)
17
+ def initialize(credentials:)
31
18
  @credentials = credentials
32
19
  end
33
20
 
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "bitbucket"
4
+
5
+ module Dependabot
6
+ module Clients
7
+ class BitbucketWithRetries
8
+ RETRYABLE_ERRORS = [
9
+ Excon::Error::Timeout,
10
+ Excon::Error::Socket
11
+ ].freeze
12
+
13
+ #######################
14
+ # Constructor methods #
15
+ #######################
16
+
17
+ def self.for_bitbucket_dot_org(credentials:)
18
+ credential =
19
+ credentials.
20
+ select { |cred| cred["type"] == "git_source" }.
21
+ find { |cred| cred["host"] == "bitbucket.org" }
22
+
23
+ new(credentials: credential)
24
+ end
25
+
26
+ ############
27
+ # Proxying #
28
+ ############
29
+
30
+ def initialize(max_retries: 3, **args)
31
+ @max_retries = max_retries || 3
32
+ @client = Bitbucket.new(args)
33
+ end
34
+
35
+ def method_missing(method_name, *args, &block)
36
+ retry_connection_failures do
37
+ if @client.respond_to?(method_name)
38
+ mutatable_args = args.map(&:dup)
39
+ @client.public_send(method_name, *mutatable_args, &block)
40
+ else
41
+ super
42
+ end
43
+ end
44
+ end
45
+
46
+ def respond_to_missing?(method_name, include_private = false)
47
+ @client.respond_to?(method_name) || super
48
+ end
49
+
50
+ # rubocop:disable Naming/RescuedExceptionsVariableName
51
+ def retry_connection_failures
52
+ retry_attempt = 0
53
+
54
+ begin
55
+ yield
56
+ rescue *RETRYABLE_ERRORS
57
+ retry_attempt += 1
58
+ retry_attempt <= @max_retries ? retry : raise
59
+ end
60
+ end
61
+ # rubocop:enable Naming/RescuedExceptionsVariableName
62
+ end
63
+ end
64
+ end
@@ -4,7 +4,7 @@ require "dependabot/dependency_file"
4
4
  require "dependabot/source"
5
5
  require "dependabot/errors"
6
6
  require "dependabot/clients/github_with_retries"
7
- require "dependabot/clients/bitbucket"
7
+ require "dependabot/clients/bitbucket_with_retries"
8
8
  require "dependabot/clients/gitlab_with_retries"
9
9
  require "dependabot/shared_helpers"
10
10
 
@@ -399,7 +399,7 @@ module Dependabot
399
399
  # TODO: When self-hosted Bitbucket is supported this should use
400
400
  # `Bitbucket.for_source`
401
401
  @bitbucket_client ||=
402
- Dependabot::Clients::Bitbucket.
402
+ Dependabot::Clients::BitbucketWithRetries.
403
403
  for_bitbucket_dot_org(credentials: credentials)
404
404
  end
405
405
  end
@@ -4,7 +4,7 @@ require "excon"
4
4
  require "gitlab"
5
5
  require "dependabot/clients/github_with_retries"
6
6
  require "dependabot/clients/gitlab_with_retries"
7
- require "dependabot/clients/bitbucket"
7
+ require "dependabot/clients/bitbucket_with_retries"
8
8
  require "dependabot/metadata_finders"
9
9
  require "dependabot/errors"
10
10
  require "dependabot/utils"
@@ -198,7 +198,7 @@ module Dependabot
198
198
  "#{listing_source_repo}/commits/?"\
199
199
  "include=#{ref2}&exclude=#{ref1}"
200
200
 
201
- client = Clients::Bitbucket.
201
+ client = Clients::BitbucketWithRetries.
202
202
  for_bitbucket_dot_org(credentials: credentials)
203
203
 
204
204
  response = client.get(url)
@@ -5,7 +5,7 @@ require "pandoc-ruby"
5
5
 
6
6
  require "dependabot/clients/github_with_retries"
7
7
  require "dependabot/clients/gitlab_with_retries"
8
- require "dependabot/clients/bitbucket"
8
+ require "dependabot/clients/bitbucket_with_retries"
9
9
  require "dependabot/shared_helpers"
10
10
  require "dependabot/metadata_finders/base"
11
11
 
@@ -358,7 +358,7 @@ module Dependabot
358
358
  end
359
359
 
360
360
  def bitbucket_client
361
- @bitbucket_client ||= Dependabot::Clients::Bitbucket.
361
+ @bitbucket_client ||= Dependabot::Clients::BitbucketWithRetries.
362
362
  for_bitbucket_dot_org(credentials: credentials)
363
363
  end
364
364
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "dependabot/clients/github_with_retries"
4
4
  require "dependabot/clients/gitlab_with_retries"
5
- require "dependabot/clients/bitbucket"
5
+ require "dependabot/clients/bitbucket_with_retries"
6
6
  require "dependabot/shared_helpers"
7
7
  require "dependabot/git_metadata_fetcher"
8
8
  require "dependabot/git_commit_checker"
@@ -298,7 +298,7 @@ module Dependabot
298
298
  end
299
299
 
300
300
  def bitbucket_client
301
- @bitbucket_client ||= Dependabot::Clients::Bitbucket.
301
+ @bitbucket_client ||= Dependabot::Clients::BitbucketWithRetries.
302
302
  for_bitbucket_dot_org(credentials: credentials)
303
303
  end
304
304
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.107.38"
4
+ VERSION = "0.107.39"
5
5
  end
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.107.38
4
+ version: 0.107.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-01 00:00:00.000000000 Z
11
+ date: 2019-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-ecr
@@ -312,6 +312,7 @@ files:
312
312
  - bin/git-credential-store-immutable
313
313
  - lib/dependabot.rb
314
314
  - lib/dependabot/clients/bitbucket.rb
315
+ - lib/dependabot/clients/bitbucket_with_retries.rb
315
316
  - lib/dependabot/clients/github_with_retries.rb
316
317
  - lib/dependabot/clients/gitlab_with_retries.rb
317
318
  - lib/dependabot/dependency.rb