dependabot-cargo 0.97.9 → 0.97.10

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: 9f8504969ef14a1912a358df0cd5ef27be3209a364ba3583e6f210d80cf72c26
4
- data.tar.gz: e16f585171445aafa6ada273282e1f1474546547da5fec6ef878cd8bf151f00e
3
+ metadata.gz: 59b6dd47e9bcb8b7f5ffa761808e10703f1b9996aece15c537d3907e09f63b2e
4
+ data.tar.gz: cbbaf03f6eaa0b860e619458449fe5e23971b54b3e37b64ba6a0480245da251f
5
5
  SHA512:
6
- metadata.gz: f3becd423c2b6bdd6442c6777b3802b1564517c33b676a45a124fe775c6f24a0c3afd9dd5a1beaddc03e567bf2186b1dcc8e42ba015f3b60f01952f6c6afa70a
7
- data.tar.gz: 74b489ae8b171290d44a86fae20e3eaf291fad3ffe2dffa58c0a5847c8868361d64ede87d7fbb2c2e8e9aa0b928e4c4095332fc12648314486cb7fe14e315704
6
+ metadata.gz: b3b1fb432e3e02bf90cee0119e3555ad81b8aa999bb9007d80acf30608bfc666b1b10007d6edfb8a52b73bdc99a9a55f63b2b28a8f4d2b6a65649e170bcafdfc
7
+ data.tar.gz: a530c5f26bc81fa62584e5d5d247959c148c2442a06dbeb5e0140c589113cbe39ee99f4a769e61a2035ed16b6a3a95213b8076e65d5d8c290b532b987af97901
@@ -13,6 +13,13 @@ module Dependabot
13
13
  module Cargo
14
14
  class FileUpdater
15
15
  class LockfileUpdater
16
+ LOCKFILE_ENTRY_REGEX = /
17
+ \[\[package\]\]\n
18
+ (?:(?!^\[(\[package|metadata)).)+
19
+ /mx.freeze
20
+
21
+ LOCKFILE_CHECKSUM_REGEX = /^"checksum .*$/.freeze
22
+
16
23
  def initialize(dependencies:, dependency_files:, credentials:)
17
24
  @dependencies = dependencies
18
25
  @dependency_files = dependency_files
@@ -240,6 +247,7 @@ module Dependabot
240
247
  def post_process_lockfile(content)
241
248
  git_ssh_requirements_to_swap.each do |ssh_url, https_url|
242
249
  content = content.gsub(https_url, ssh_url)
250
+ content = remove_duplicate_lockfile_entries(content)
243
251
  end
244
252
 
245
253
  content
@@ -267,6 +275,36 @@ module Dependabot
267
275
  @git_ssh_requirements_to_swap
268
276
  end
269
277
 
278
+ def remove_duplicate_lockfile_entries(lockfile_content)
279
+ # Loop through the lockfile entries looking for duplicates. Replace
280
+ # any that are found
281
+ lockfile_entries = []
282
+ lockfile_content.scan(LOCKFILE_ENTRY_REGEX) do
283
+ lockfile_entries << Regexp.last_match.to_s
284
+ end
285
+ lockfile_entries.
286
+ select { |e| lockfile_entries.count(e) > 1 }.uniq.
287
+ each do |entry|
288
+ (lockfile_entries.count(entry) - 1).
289
+ times { lockfile_content = lockfile_content.sub(entry, "") }
290
+ end
291
+
292
+ # Loop through the lockfile checksums looking for duplicates. Replace
293
+ # any that are found
294
+ lockfile_checksums = []
295
+ lockfile_content.scan(LOCKFILE_CHECKSUM_REGEX) do
296
+ lockfile_checksums << Regexp.last_match.to_s
297
+ end
298
+ lockfile_checksums.
299
+ select { |e| lockfile_checksums.count(e) > 1 }.uniq.
300
+ each do |cs|
301
+ (lockfile_checksums.count(cs) - 1).
302
+ times { lockfile_content = lockfile_content.sub("\n#{cs}", "") }
303
+ end
304
+
305
+ lockfile_content
306
+ end
307
+
270
308
  def dummy_app_content
271
309
  %{fn main() {\nprintln!("Hello, world!");\n}}
272
310
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-cargo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.97.9
4
+ version: 0.97.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-14 00:00:00.000000000 Z
11
+ date: 2019-03-15 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.97.9
19
+ version: 0.97.10
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.97.9
26
+ version: 0.97.10
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement