dependabot-core 0.88.3 → 0.89.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/helpers/test/run.rb +3 -0
  4. data/lib/dependabot/file_fetchers.rb +0 -2
  5. data/lib/dependabot/file_parsers.rb +0 -2
  6. data/lib/dependabot/file_updaters.rb +0 -2
  7. data/lib/dependabot/file_updaters/go/dep/lockfile_updater.rb +11 -8
  8. data/lib/dependabot/metadata_finders.rb +0 -2
  9. data/lib/dependabot/shared_helpers.rb +47 -24
  10. data/lib/dependabot/update_checkers.rb +0 -2
  11. data/lib/dependabot/update_checkers/go/dep/version_resolver.rb +11 -7
  12. data/lib/dependabot/utils.rb +0 -4
  13. data/lib/dependabot/version.rb +1 -1
  14. metadata +2 -25
  15. data/helpers/php/.php_cs +0 -34
  16. data/helpers/php/bin/run.php +0 -84
  17. data/helpers/php/composer.json +0 -14
  18. data/helpers/php/composer.lock +0 -1528
  19. data/helpers/php/composer.phar +0 -0
  20. data/helpers/php/setup.sh +0 -4
  21. data/helpers/php/src/DependabotInstallationManager.php +0 -61
  22. data/helpers/php/src/DependabotPluginManager.php +0 -23
  23. data/helpers/php/src/ExceptionIO.php +0 -25
  24. data/helpers/php/src/Hasher.php +0 -21
  25. data/helpers/php/src/UpdateChecker.php +0 -123
  26. data/helpers/php/src/Updater.php +0 -97
  27. data/lib/dependabot/file_fetchers/php/composer.rb +0 -131
  28. data/lib/dependabot/file_parsers/php/composer.rb +0 -177
  29. data/lib/dependabot/file_updaters/php/composer.rb +0 -78
  30. data/lib/dependabot/file_updaters/php/composer/lockfile_updater.rb +0 -269
  31. data/lib/dependabot/file_updaters/php/composer/manifest_updater.rb +0 -70
  32. data/lib/dependabot/metadata_finders/php/composer.rb +0 -66
  33. data/lib/dependabot/update_checkers/php/composer.rb +0 -175
  34. data/lib/dependabot/update_checkers/php/composer/requirements_updater.rb +0 -258
  35. data/lib/dependabot/update_checkers/php/composer/version_resolver.rb +0 -216
  36. data/lib/dependabot/utils/php/requirement.rb +0 -97
  37. data/lib/dependabot/utils/php/version.rb +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0e6c6a4759ea4d2d3cae2b28e1a8d8b5202e6842ef2691c86c7788de550a87c
4
- data.tar.gz: e505e0c88738581c8829796ac9257b525a605c1f983030ad1b21e08f0ea6949a
3
+ metadata.gz: d2ca034df04f9743dedbff69bb879866ab4c742ade532c0f47943d890758b8dd
4
+ data.tar.gz: c0fa023b23be7ca8d530c1fbb53944b45653931b379ac60ebf9b438a8fc73acd
5
5
  SHA512:
6
- metadata.gz: 36fb8a79be75b4291cf6db404328558ab9ad2d0a2cdea5f0df79071ac6fde7da4aaa148faf7680c53b3d80a155b7985e382def88cdf5b7f3767e583b2de2384a
7
- data.tar.gz: 5297ce846d69eff52cc593a38e5690a760a529037379c71f282dfba6f21d77557016dabefa587e016df892b3b42a08eb1178a641a403d735fa8aa8546e2014df
6
+ metadata.gz: ab0c26c03ee079d6efa7ac92b28be5f86bb1ed7eda16a8e803092aa239cf7901f2134a4b1b5008b8b880891ecaa46f4966f3466be020264dc54c003a4def5ab7
7
+ data.tar.gz: aae500ba23f524f503c8f22273f7d1d079f1adf0a1ae474fa5c3e793f95f5ff4c4abfa06eb52d9c9098a7718b20396720ebf35c2170bbabab701bccfb0c25a79
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## v0.89.0, 11 January 2019
2
+
3
+ - PHP reorg
4
+ - Change subprocess IO.popen to Open3.capture2
5
+ - Add error context when helper subprocesses fail
6
+
1
7
  ## v0.88.3, 10 January 2019
2
8
 
3
9
  - Ruby: Add Ruby 2.6.0 to list of rubies in RubyRequirementSetter
data/helpers/test/run.rb CHANGED
@@ -7,6 +7,9 @@ case request["function"]
7
7
  when "error"
8
8
  $stdout.write(JSON.dump(error: "Something went wrong"))
9
9
  exit 1
10
+ when "useful_error"
11
+ $stderr.write("Some useful error")
12
+ exit 1
10
13
  when "hard_error"
11
14
  puts "Oh no!"
12
15
  exit 0
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_fetchers/ruby/bundler"
4
4
  require "dependabot/file_fetchers/java_script/npm_and_yarn"
5
- require "dependabot/file_fetchers/php/composer"
6
5
  require "dependabot/file_fetchers/go/dep"
7
6
 
8
7
  module Dependabot
@@ -10,7 +9,6 @@ module Dependabot
10
9
  @file_fetchers = {
11
10
  "bundler" => FileFetchers::Ruby::Bundler,
12
11
  "npm_and_yarn" => FileFetchers::JavaScript::NpmAndYarn,
13
- "composer" => FileFetchers::Php::Composer,
14
12
  "dep" => FileFetchers::Go::Dep
15
13
  }
16
14
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_parsers/ruby/bundler"
4
4
  require "dependabot/file_parsers/java_script/npm_and_yarn"
5
- require "dependabot/file_parsers/php/composer"
6
5
  require "dependabot/file_parsers/go/dep"
7
6
 
8
7
  module Dependabot
@@ -10,7 +9,6 @@ module Dependabot
10
9
  @file_parsers = {
11
10
  "bundler" => FileParsers::Ruby::Bundler,
12
11
  "npm_and_yarn" => FileParsers::JavaScript::NpmAndYarn,
13
- "composer" => FileParsers::Php::Composer,
14
12
  "dep" => FileParsers::Go::Dep
15
13
  }
16
14
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/file_updaters/ruby/bundler"
4
4
  require "dependabot/file_updaters/java_script/npm_and_yarn"
5
- require "dependabot/file_updaters/php/composer"
6
5
  require "dependabot/file_updaters/go/dep"
7
6
 
8
7
  module Dependabot
@@ -10,7 +9,6 @@ module Dependabot
10
9
  @file_updaters = {
11
10
  "bundler" => FileUpdaters::Ruby::Bundler,
12
11
  "npm_and_yarn" => FileUpdaters::JavaScript::NpmAndYarn,
13
- "composer" => FileUpdaters::Php::Composer,
14
12
  "dep" => FileUpdaters::Go::Dep
15
13
  }
16
14
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "toml-rb"
4
-
4
+ require "open3"
5
5
  require "dependabot/shared_helpers"
6
6
  require "dependabot/dependency_file"
7
7
  require "dependabot/file_updaters/go/dep"
@@ -51,18 +51,21 @@ module Dependabot
51
51
  attr_reader :dependencies, :dependency_files, :credentials
52
52
 
53
53
  def run_shell_command(command, env = {})
54
- raw_response = nil
55
- IO.popen(env, command, err: %i(child out)) do |process|
56
- raw_response = process.read
57
- end
54
+ start = Time.now
55
+ stdout, process = Open3.capture2e(env, command)
56
+ time_taken = start - Time.now
58
57
 
59
58
  # Raise an error with the output from the shell session if dep
60
59
  # returns a non-zero status
61
- return if $CHILD_STATUS.success?
60
+ return if process.success?
62
61
 
63
62
  raise SharedHelpers::HelperSubprocessFailed.new(
64
- raw_response,
65
- command
63
+ message: stdout,
64
+ error_context: {
65
+ command: command,
66
+ time_taken: time_taken,
67
+ process_exit_value: process.to_s
68
+ }
66
69
  )
67
70
  end
68
71
 
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/metadata_finders/ruby/bundler"
4
4
  require "dependabot/metadata_finders/java_script/npm_and_yarn"
5
- require "dependabot/metadata_finders/php/composer"
6
5
  require "dependabot/metadata_finders/go/dep"
7
6
 
8
7
  module Dependabot
@@ -10,7 +9,6 @@ module Dependabot
10
9
  @metadata_finders = {
11
10
  "bundler" => MetadataFinders::Ruby::Bundler,
12
11
  "npm_and_yarn" => MetadataFinders::JavaScript::NpmAndYarn,
13
- "composer" => MetadataFinders::Php::Composer,
14
12
  "dep" => MetadataFinders::Go::Dep
15
13
  }
16
14
 
@@ -5,6 +5,7 @@ require "tmpdir"
5
5
  require "excon"
6
6
  require "English"
7
7
  require "digest"
8
+ require "open3"
8
9
 
9
10
  module Dependabot
10
11
  module SharedHelpers
@@ -62,34 +63,51 @@ module Dependabot
62
63
  end
63
64
 
64
65
  class HelperSubprocessFailed < StandardError
65
- def initialize(message, command)
66
+ def initialize(message:, error_context:)
66
67
  super(message)
67
- @command = command
68
+ @error_context = error_context
69
+ @command = error_context[:command]
68
70
  end
69
71
 
70
72
  def raven_context
71
- { fingerprint: [@command] }
73
+ { fingerprint: [@command], extra: @error_context }
72
74
  end
73
75
  end
74
76
 
75
77
  def self.run_helper_subprocess(command:, function:, args:, env: nil,
76
- popen_opts: {})
77
- raw_response = nil
78
- popen_args = [env, command, "w+"].compact
79
- IO.popen(*popen_args, popen_opts) do |process|
80
- process.write(JSON.dump(function: function, args: args))
81
- process.close_write
82
- raw_response = process.read
83
- end
78
+ stderr_to_stdout: false)
79
+ start = Time.now
80
+ stdin_data = JSON.dump(function: function, args: args)
81
+ env_cmd = [env, command].compact
82
+ stdout, stderr, process = Open3.capture3(*env_cmd, stdin_data: stdin_data)
83
+ time_taken = Time.now - start
84
+
85
+ # Some package managers output useful stuff to stderr instead of stdout so
86
+ # we want to parse this, most package manager will output garbage here so
87
+ # would mess up json response from stdout
88
+ stdout = "#{stderr}\n#{stdout}" if stderr_to_stdout
89
+
90
+ error_context = {
91
+ command: command,
92
+ function: function,
93
+ args: args,
94
+ time_taken: time_taken,
95
+ stderr_output: stderr ? stderr[0..50_000] : "", # Truncate to ~100kb
96
+ process_exit_value: process.to_s
97
+ }
84
98
 
85
- response = JSON.parse(raw_response)
86
- return response["result"] if $CHILD_STATUS.success?
99
+ response = JSON.parse(stdout)
100
+ return response["result"] if process.success?
87
101
 
88
- raise HelperSubprocessFailed.new(response["error"], command)
102
+ raise HelperSubprocessFailed.new(
103
+ message: response["error"],
104
+ error_context: error_context
105
+ )
89
106
  rescue JSON::ParserError
90
- raise HelperSubprocessFailed.new(raw_response, command) if raw_response
91
-
92
- raise HelperSubprocessFailed.new("No output from command", command)
107
+ raise HelperSubprocessFailed.new(
108
+ message: stdout || "No output from command",
109
+ error_context: error_context
110
+ )
93
111
  end
94
112
 
95
113
  def self.excon_middleware
@@ -183,18 +201,23 @@ module Dependabot
183
201
  end
184
202
 
185
203
  def self.run_shell_command(command)
186
- raw_response = nil
187
- IO.popen(command, err: %i(child out)) do |process|
188
- raw_response = process.read
189
- end
204
+ start = Time.now
205
+ stdout, process = Open3.capture2e(command)
206
+ time_taken = start - Time.now
190
207
 
191
208
  # Raise an error with the output from the shell session if the
192
209
  # command returns a non-zero status
193
- return if $CHILD_STATUS.success?
210
+ return if process.success?
211
+
212
+ error_context = {
213
+ command: command,
214
+ time_taken: time_taken,
215
+ process_exit_value: process.to_s
216
+ }
194
217
 
195
218
  raise SharedHelpers::HelperSubprocessFailed.new(
196
- raw_response,
197
- command
219
+ message: stdout,
220
+ error_context: error_context
198
221
  )
199
222
  end
200
223
  end
@@ -2,7 +2,6 @@
2
2
 
3
3
  require "dependabot/update_checkers/ruby/bundler"
4
4
  require "dependabot/update_checkers/java_script/npm_and_yarn"
5
- require "dependabot/update_checkers/php/composer"
6
5
  require "dependabot/update_checkers/go/dep"
7
6
 
8
7
  module Dependabot
@@ -10,7 +9,6 @@ module Dependabot
10
9
  @update_checkers = {
11
10
  "bundler" => UpdateCheckers::Ruby::Bundler,
12
11
  "npm_and_yarn" => UpdateCheckers::JavaScript::NpmAndYarn,
13
- "composer" => UpdateCheckers::Php::Composer,
14
12
  "dep" => UpdateCheckers::Go::Dep
15
13
  }
16
14
 
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "toml-rb"
4
+ require "open3"
4
5
  require "dependabot/shared_helpers"
5
6
  require "dependabot/update_checkers/go/dep"
6
7
  require "dependabot/errors"
@@ -94,18 +95,21 @@ module Dependabot
94
95
  end
95
96
 
96
97
  def run_shell_command(command, env = {})
97
- raw_response = nil
98
- IO.popen(env, command, err: %i(child out)) do |process|
99
- raw_response = process.read
100
- end
98
+ start = Time.now
99
+ stdout, process = Open3.capture2e(env, command)
100
+ time_taken = start - Time.now
101
101
 
102
102
  # Raise an error with the output from the shell session if dep
103
103
  # returns a non-zero status
104
- return if $CHILD_STATUS.success?
104
+ return if process.success?
105
105
 
106
106
  raise SharedHelpers::HelperSubprocessFailed.new(
107
- raw_response,
108
- command
107
+ message: stdout,
108
+ error_context: {
109
+ command: command,
110
+ time_taken: time_taken,
111
+ process_exit_value: process.to_s
112
+ }
109
113
  )
110
114
  end
111
115
 
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "dependabot/utils/java_script/version"
4
- require "dependabot/utils/php/version"
5
4
  require "dependabot/utils/go/version"
6
5
 
7
6
  require "dependabot/utils/java_script/requirement"
8
- require "dependabot/utils/php/requirement"
9
7
  require "dependabot/utils/ruby/requirement"
10
8
  require "dependabot/utils/go/requirement"
11
9
 
@@ -18,7 +16,6 @@ module Dependabot
18
16
  "submodules" => Gem::Version,
19
17
  "docker" => Gem::Version,
20
18
  "npm_and_yarn" => Utils::JavaScript::Version,
21
- "composer" => Utils::Php::Version,
22
19
  "dep" => Utils::Go::Version
23
20
  }
24
21
 
@@ -38,7 +35,6 @@ module Dependabot
38
35
  "submodules" => Utils::Ruby::Requirement,
39
36
  "docker" => Utils::Ruby::Requirement,
40
37
  "npm_and_yarn" => Utils::JavaScript::Requirement,
41
- "composer" => Utils::Php::Requirement,
42
38
  "dep" => Utils::Go::Requirement
43
39
  }
44
40
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dependabot
4
- VERSION = "0.88.3"
4
+ VERSION = "0.89.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependabot-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.88.3
4
+ version: 0.89.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dependabot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-10 00:00:00.000000000 Z
11
+ date: 2019-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-ecr
@@ -318,18 +318,6 @@ files:
318
318
  - helpers/npm/test/helpers.js
319
319
  - helpers/npm/test/updater.test.js
320
320
  - helpers/npm/yarn.lock
321
- - helpers/php/.php_cs
322
- - helpers/php/bin/run.php
323
- - helpers/php/composer.json
324
- - helpers/php/composer.lock
325
- - helpers/php/composer.phar
326
- - helpers/php/setup.sh
327
- - helpers/php/src/DependabotInstallationManager.php
328
- - helpers/php/src/DependabotPluginManager.php
329
- - helpers/php/src/ExceptionIO.php
330
- - helpers/php/src/Hasher.php
331
- - helpers/php/src/UpdateChecker.php
332
- - helpers/php/src/Updater.php
333
321
  - helpers/test/run.rb
334
322
  - helpers/utils/git-credential-store-immutable
335
323
  - helpers/yarn/.eslintrc
@@ -368,7 +356,6 @@ files:
368
356
  - lib/dependabot/file_fetchers/go/dep.rb
369
357
  - lib/dependabot/file_fetchers/java_script/npm_and_yarn.rb
370
358
  - lib/dependabot/file_fetchers/java_script/npm_and_yarn/path_dependency_builder.rb
371
- - lib/dependabot/file_fetchers/php/composer.rb
372
359
  - lib/dependabot/file_fetchers/ruby/bundler.rb
373
360
  - lib/dependabot/file_fetchers/ruby/bundler/child_gemfile_finder.rb
374
361
  - lib/dependabot/file_fetchers/ruby/bundler/path_gemspec_finder.rb
@@ -379,7 +366,6 @@ files:
379
366
  - lib/dependabot/file_parsers/base/dependency_set.rb
380
367
  - lib/dependabot/file_parsers/go/dep.rb
381
368
  - lib/dependabot/file_parsers/java_script/npm_and_yarn.rb
382
- - lib/dependabot/file_parsers/php/composer.rb
383
369
  - lib/dependabot/file_parsers/ruby/bundler.rb
384
370
  - lib/dependabot/file_parsers/ruby/bundler/file_preparer.rb
385
371
  - lib/dependabot/file_parsers/ruby/bundler/gemfile_checker.rb
@@ -395,9 +381,6 @@ files:
395
381
  - lib/dependabot/file_updaters/java_script/npm_and_yarn/package_json_preparer.rb
396
382
  - lib/dependabot/file_updaters/java_script/npm_and_yarn/package_json_updater.rb
397
383
  - lib/dependabot/file_updaters/java_script/npm_and_yarn/yarn_lockfile_updater.rb
398
- - lib/dependabot/file_updaters/php/composer.rb
399
- - lib/dependabot/file_updaters/php/composer/lockfile_updater.rb
400
- - lib/dependabot/file_updaters/php/composer/manifest_updater.rb
401
384
  - lib/dependabot/file_updaters/ruby/bundler.rb
402
385
  - lib/dependabot/file_updaters/ruby/bundler/gemfile_updater.rb
403
386
  - lib/dependabot/file_updaters/ruby/bundler/gemspec_dependency_name_finder.rb
@@ -417,7 +400,6 @@ files:
417
400
  - lib/dependabot/metadata_finders/base/release_finder.rb
418
401
  - lib/dependabot/metadata_finders/go/dep.rb
419
402
  - lib/dependabot/metadata_finders/java_script/npm_and_yarn.rb
420
- - lib/dependabot/metadata_finders/php/composer.rb
421
403
  - lib/dependabot/metadata_finders/ruby/bundler.rb
422
404
  - lib/dependabot/pull_request_creator.rb
423
405
  - lib/dependabot/pull_request_creator/branch_namer.rb
@@ -445,9 +427,6 @@ files:
445
427
  - lib/dependabot/update_checkers/java_script/npm_and_yarn/requirements_updater.rb
446
428
  - lib/dependabot/update_checkers/java_script/npm_and_yarn/subdependency_version_resolver.rb
447
429
  - lib/dependabot/update_checkers/java_script/npm_and_yarn/version_resolver.rb
448
- - lib/dependabot/update_checkers/php/composer.rb
449
- - lib/dependabot/update_checkers/php/composer/requirements_updater.rb
450
- - lib/dependabot/update_checkers/php/composer/version_resolver.rb
451
430
  - lib/dependabot/update_checkers/ruby/bundler.rb
452
431
  - lib/dependabot/update_checkers/ruby/bundler/file_preparer.rb
453
432
  - lib/dependabot/update_checkers/ruby/bundler/force_updater.rb
@@ -463,8 +442,6 @@ files:
463
442
  - lib/dependabot/utils/go/version.rb
464
443
  - lib/dependabot/utils/java_script/requirement.rb
465
444
  - lib/dependabot/utils/java_script/version.rb
466
- - lib/dependabot/utils/php/requirement.rb
467
- - lib/dependabot/utils/php/version.rb
468
445
  - lib/dependabot/utils/ruby/requirement.rb
469
446
  - lib/dependabot/version.rb
470
447
  - lib/rubygems_version_patch.rb
data/helpers/php/.php_cs DELETED
@@ -1,34 +0,0 @@
1
- <?php
2
-
3
- $finder = PhpCsFixer\Finder::create()
4
- ->in(__DIR__ . '/src')
5
- ->in(__DIR__ . '/bin');
6
-
7
- return PhpCsFixer\Config::create()
8
- ->setRules([
9
- '@Symfony' => true,
10
- 'array_syntax' => ['syntax' => 'short'],
11
- 'blank_line_after_opening_tag' => true,
12
- 'concat_space' => ['spacing' => 'one'],
13
- 'declare_strict_types' => true,
14
- 'increment_style' => ['style' => 'post'],
15
- 'is_null' => ['use_yoda_style' => false],
16
- 'list_syntax' => ['syntax' => 'short'],
17
- 'method_argument_space' => ['ensure_fully_multiline' => true],
18
- 'modernize_types_casting' => true,
19
- 'no_multiline_whitespace_before_semicolons' => true,
20
- 'no_useless_else' => true,
21
- 'no_useless_return' => true,
22
- 'ordered_imports' => true,
23
- 'phpdoc_align' => false,
24
- 'phpdoc_order' => true,
25
- 'php_unit_construct' => true,
26
- 'php_unit_dedicate_assert' => true,
27
- 'single_line_comment_style' => true,
28
- 'ternary_to_null_coalescing' => true,
29
- 'yoda_style' => false,
30
- 'void_return' => true,
31
- ])
32
- ->setFinder($finder)
33
- ->setUsingCache(true)
34
- ->setRiskyAllowed(true);