dependabot-core 0.88.3 → 0.89.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.
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);