dependabot-common 0.116.2 → 0.117.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 341698a302a0bda029a2404b6622caee807187c038ef0eca920ef22cd0141301
4
- data.tar.gz: afe8641e292e52541ca1971d3790fdcf8820777c2b144f6bf131309dca10c6e1
3
+ metadata.gz: 7dabb5390c99314c33d5b64e07388e2deaf614dcba3be7eee39806e8b5deaff2
4
+ data.tar.gz: a71cbca736c9455ceb7ba73b6b3051b52b41b0b8c4c3155542f020e6a2211120
5
5
  SHA512:
6
- metadata.gz: dca7601497209f6e70f3157ae48f8a9dcd437034b370c754be6c765d1c89ad91a151d2980853bfd8e0547527be9c3a9c2d1568470dcecdf2cbd2b07eb9ff33c1
7
- data.tar.gz: 7e7d5313d1d148045f12e0da8eb0fb357d3551930db7d339c81f57e7a985ccfabe29ad58ea0361a77a4915694480fa9015388e6d47dc3bceaec0658166b814a8
6
+ metadata.gz: fd9cf03127407d8aa28b8d28bf1a926d99d13ecd43b3fe6ea0b172d96b2b33b9b9079be2047fd6508d266e99e322201baae741c2842b35b02326b4fdf5f85ceb
7
+ data.tar.gz: a2a7f212298b0d5eface9267659f15436b2e3291358146ca58ff93cb2f5a15fac664aba338a85f07198e99389231b9eebc5291a56ca2e1ddd6eadcc745e52442
@@ -156,16 +156,26 @@ module Dependabot
156
156
  cred = credentials.select { |c| c["type"] == "git_source" }.
157
157
  find { |c| bare_uri.start_with?(c["host"]) }
158
158
 
159
+ scheme = scheme_for_uri(uri)
160
+
159
161
  if bare_uri.match?(%r{[^/]+:[^/]+@})
160
162
  # URI already has authentication details
161
- "https://#{bare_uri}"
163
+ "#{scheme}://#{bare_uri}"
162
164
  elsif cred&.fetch("username", nil) && cred&.fetch("password", nil)
163
165
  # URI doesn't have authentication details, but we have credentials
164
166
  auth_string = "#{cred.fetch('username')}:#{cred.fetch('password')}"
165
- "https://#{auth_string}@#{bare_uri}"
167
+ "#{scheme}://#{auth_string}@#{bare_uri}"
168
+ else
169
+ # No credentials, so just return the http(s) URI
170
+ "#{scheme}://#{bare_uri}"
171
+ end
172
+ end
173
+
174
+ def scheme_for_uri(uri)
175
+ if uri.match?(%r{^http://})
176
+ "http"
166
177
  else
167
- # No credentials, so just return the https URI
168
- "https://#{bare_uri}"
178
+ "https"
169
179
  end
170
180
  end
171
181
 
@@ -27,7 +27,11 @@ module Dependabot
27
27
  elsif dependencies.count > 1 && updating_a_dependency_set?
28
28
  dependency_set.fetch(:group)
29
29
  else
30
- dependencies.map(&:name).join("-and-").tr(":", "-").tr("@", "")
30
+ dependencies.
31
+ map(&:name).
32
+ join("-and-").
33
+ tr(":[]", "-").
34
+ tr("@", "")
31
35
  end
32
36
 
33
37
  dep = dependencies.first
@@ -41,12 +45,8 @@ module Dependabot
41
45
  end
42
46
  end
43
47
 
44
- branch_name = File.join(prefixes, @name).
45
- gsub(%r{/\.}, "/dot-").
46
- gsub(%r{/\.}, "/dot-")
47
-
48
48
  # Some users need branch names without slashes
49
- branch_name.gsub("/", separator)
49
+ sanitize_ref(File.join(prefixes, @name).gsub("/", separator))
50
50
  end
51
51
 
52
52
  # rubocop:enable Metrics/PerceivedComplexity
@@ -113,8 +113,7 @@ module Dependabot
113
113
  gsub(">", "gt-").
114
114
  gsub("<", "lt-").
115
115
  gsub("*", "star").
116
- gsub(",", "-and-").
117
- sub(/\.$/, "")
116
+ gsub(",", "-and-")
118
117
  end
119
118
 
120
119
  def new_version(dependency)
@@ -169,6 +168,23 @@ module Dependabot
169
168
  def requirements_changed?(dependency)
170
169
  (dependency.requirements - dependency.previous_requirements).any?
171
170
  end
171
+
172
+ def sanitize_ref(ref)
173
+ # This isn't a complete implementation of git's ref validation, but it
174
+ # covers most cases that crop up. Its list of allowed charactersr is a
175
+ # bit stricter than git's, but that's for cosmetic reasons.
176
+ ref.
177
+ # Remove forbidden characters (those not already replaced elsewhere)
178
+ gsub(%r{[^A-Za-z0-9/\-_.(){}]}, "").
179
+ # Slashes can't be followed by periods
180
+ gsub(%r{/\.}, "/dot-").
181
+ # Two or more sequential periods are forbidden
182
+ gsub(/\.+/, ".").
183
+ # Two or more sequential slashes are forbidden
184
+ gsub(%r{/+}, "/").
185
+ # Trailing periods are forbidden
186
+ sub(/\.$/, "")
187
+ end
172
188
  end
173
189
  end
174
190
  end
@@ -50,6 +50,8 @@ module Dependabot
50
50
  branch = create_or_get_branch(base_commit)
51
51
  return unless branch
52
52
 
53
+ create_commit
54
+
53
55
  pull_request = codecommit_client_for_source.create_pull_request(
54
56
  pr_name,
55
57
  branch_name,
@@ -58,6 +58,7 @@ module Dependabot
58
58
  end
59
59
  end
60
60
 
61
+ # rubocop:disable Metrics/PerceivedComplexity
61
62
  def sanitize_links(doc)
62
63
  doc.walk do |node|
63
64
  if node.type == :link && node.url.match?(GITHUB_REF_REGEX)
@@ -73,12 +74,20 @@ module Dependabot
73
74
  subnode.string_content = "#{repo}##{number}"
74
75
  end
75
76
 
76
- node.url = node.url.gsub(
77
- "github.com", github_redirection_service || "github.com"
78
- )
77
+ node.url = replace_github_host(node.url)
78
+ elsif node.type == :text &&
79
+ node.string_content.match?(GITHUB_REF_REGEX)
80
+ node.string_content = replace_github_host(node.string_content)
79
81
  end
80
82
  end
81
83
  end
84
+ # rubocop:enable Metrics/PerceivedComplexity
85
+
86
+ def replace_github_host(text)
87
+ text.gsub(
88
+ "github.com", github_redirection_service || "github.com"
89
+ )
90
+ end
82
91
 
83
92
  def build_mention_nodes(text)
84
93
  nodes = []
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.116.2"
4
+ VERSION = "0.117.0"
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.116.2
4
+ version: 0.117.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-10 00:00:00.000000000 Z
11
+ date: 2020-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-codecommit
@@ -62,16 +62,22 @@ dependencies:
62
62
  name: commonmarker
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
- - - "~>"
65
+ - - ">="
66
66
  - !ruby/object:Gem::Version
67
67
  version: 0.20.1
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: 0.22.0
68
71
  type: :runtime
69
72
  prerelease: false
70
73
  version_requirements: !ruby/object:Gem::Requirement
71
74
  requirements:
72
- - - "~>"
75
+ - - ">="
73
76
  - !ruby/object:Gem::Version
74
77
  version: 0.20.1
78
+ - - "<"
79
+ - !ruby/object:Gem::Version
80
+ version: 0.22.0
75
81
  - !ruby/object:Gem::Dependency
76
82
  name: docker_registry2
77
83
  requirement: !ruby/object:Gem::Requirement
@@ -300,26 +306,26 @@ dependencies:
300
306
  requirements:
301
307
  - - "~>"
302
308
  - !ruby/object:Gem::Version
303
- version: 0.79.0
309
+ version: 0.80.1
304
310
  type: :development
305
311
  prerelease: false
306
312
  version_requirements: !ruby/object:Gem::Requirement
307
313
  requirements:
308
314
  - - "~>"
309
315
  - !ruby/object:Gem::Version
310
- version: 0.79.0
316
+ version: 0.80.1
311
317
  - !ruby/object:Gem::Dependency
312
318
  name: vcr
313
319
  requirement: !ruby/object:Gem::Requirement
314
320
  requirements:
315
- - - "~>"
321
+ - - '='
316
322
  - !ruby/object:Gem::Version
317
323
  version: '5.0'
318
324
  type: :development
319
325
  prerelease: false
320
326
  version_requirements: !ruby/object:Gem::Requirement
321
327
  requirements:
322
- - - "~>"
328
+ - - '='
323
329
  - !ruby/object:Gem::Version
324
330
  version: '5.0'
325
331
  - !ruby/object:Gem::Dependency