dependabot-core 0.87.15 → 0.88.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/dependabot/file_fetchers.rb +0 -2
- data/lib/dependabot/file_parsers.rb +0 -2
- data/lib/dependabot/file_updaters.rb +0 -2
- data/lib/dependabot/metadata_finders.rb +0 -2
- data/lib/dependabot/pull_request_creator/message_builder.rb +1 -1
- data/lib/dependabot/update_checkers.rb +0 -2
- data/lib/dependabot/update_checkers/php/composer/version_resolver.rb +3 -2
- data/lib/dependabot/utils.rb +0 -4
- data/lib/dependabot/version.rb +1 -1
- metadata +1 -22
- data/helpers/elixir/bin/check_update.exs +0 -92
- data/helpers/elixir/bin/do_update.exs +0 -39
- data/helpers/elixir/bin/parse_deps.exs +0 -103
- data/helpers/elixir/bin/run.exs +0 -76
- data/helpers/elixir/mix.exs +0 -21
- data/helpers/elixir/mix.lock +0 -3
- data/lib/dependabot/file_fetchers/elixir/hex.rb +0 -78
- data/lib/dependabot/file_parsers/elixir/hex.rb +0 -134
- data/lib/dependabot/file_updaters/elixir/hex.rb +0 -71
- data/lib/dependabot/file_updaters/elixir/hex/lockfile_updater.rb +0 -147
- data/lib/dependabot/file_updaters/elixir/hex/mixfile_git_pin_updater.rb +0 -53
- data/lib/dependabot/file_updaters/elixir/hex/mixfile_requirement_updater.rb +0 -74
- data/lib/dependabot/file_updaters/elixir/hex/mixfile_sanitizer.rb +0 -28
- data/lib/dependabot/file_updaters/elixir/hex/mixfile_updater.rb +0 -98
- data/lib/dependabot/metadata_finders/elixir/hex.rb +0 -69
- data/lib/dependabot/update_checkers/elixir/hex.rb +0 -274
- data/lib/dependabot/update_checkers/elixir/hex/file_preparer.rb +0 -193
- data/lib/dependabot/update_checkers/elixir/hex/requirements_updater.rb +0 -177
- data/lib/dependabot/update_checkers/elixir/hex/version_resolver.rb +0 -175
- data/lib/dependabot/utils/elixir/requirement.rb +0 -54
- data/lib/dependabot/utils/elixir/version.rb +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5baac5ebf6cb593e43f66de38fbab67da68f55f771a576cdec418db8f71f2722
|
4
|
+
data.tar.gz: a72cb17501ab4a87a3c240684d62c224dcf1537aa8331585867d2f41440a0f21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c0fe474ca371161091421f0f903b9765eb2c9f992f52397687520a48b75aac41b0500145c1d4ec29e15dc905ff245606b5f856efc1b5a6f96c3261392bb1d51
|
7
|
+
data.tar.gz: ec89afa574296a90926ca749556abb99f68be8b814c1ae5c7fc879afb55f8a08f810eeeabe5f1e514291eb557b6c23dcc24a0385b82227de4958823fa76b7b5a
|
data/CHANGELOG.md
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require "dependabot/file_fetchers/ruby/bundler"
|
4
4
|
require "dependabot/file_fetchers/java_script/npm_and_yarn"
|
5
5
|
require "dependabot/file_fetchers/php/composer"
|
6
|
-
require "dependabot/file_fetchers/elixir/hex"
|
7
6
|
require "dependabot/file_fetchers/go/dep"
|
8
7
|
|
9
8
|
module Dependabot
|
@@ -12,7 +11,6 @@ module Dependabot
|
|
12
11
|
"bundler" => FileFetchers::Ruby::Bundler,
|
13
12
|
"npm_and_yarn" => FileFetchers::JavaScript::NpmAndYarn,
|
14
13
|
"composer" => FileFetchers::Php::Composer,
|
15
|
-
"hex" => FileFetchers::Elixir::Hex,
|
16
14
|
"dep" => FileFetchers::Go::Dep
|
17
15
|
}
|
18
16
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require "dependabot/file_parsers/ruby/bundler"
|
4
4
|
require "dependabot/file_parsers/java_script/npm_and_yarn"
|
5
5
|
require "dependabot/file_parsers/php/composer"
|
6
|
-
require "dependabot/file_parsers/elixir/hex"
|
7
6
|
require "dependabot/file_parsers/go/dep"
|
8
7
|
|
9
8
|
module Dependabot
|
@@ -12,7 +11,6 @@ module Dependabot
|
|
12
11
|
"bundler" => FileParsers::Ruby::Bundler,
|
13
12
|
"npm_and_yarn" => FileParsers::JavaScript::NpmAndYarn,
|
14
13
|
"composer" => FileParsers::Php::Composer,
|
15
|
-
"hex" => FileParsers::Elixir::Hex,
|
16
14
|
"dep" => FileParsers::Go::Dep
|
17
15
|
}
|
18
16
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require "dependabot/file_updaters/ruby/bundler"
|
4
4
|
require "dependabot/file_updaters/java_script/npm_and_yarn"
|
5
5
|
require "dependabot/file_updaters/php/composer"
|
6
|
-
require "dependabot/file_updaters/elixir/hex"
|
7
6
|
require "dependabot/file_updaters/go/dep"
|
8
7
|
|
9
8
|
module Dependabot
|
@@ -12,7 +11,6 @@ module Dependabot
|
|
12
11
|
"bundler" => FileUpdaters::Ruby::Bundler,
|
13
12
|
"npm_and_yarn" => FileUpdaters::JavaScript::NpmAndYarn,
|
14
13
|
"composer" => FileUpdaters::Php::Composer,
|
15
|
-
"hex" => FileUpdaters::Elixir::Hex,
|
16
14
|
"dep" => FileUpdaters::Go::Dep
|
17
15
|
}
|
18
16
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require "dependabot/metadata_finders/ruby/bundler"
|
4
4
|
require "dependabot/metadata_finders/java_script/npm_and_yarn"
|
5
5
|
require "dependabot/metadata_finders/php/composer"
|
6
|
-
require "dependabot/metadata_finders/elixir/hex"
|
7
6
|
require "dependabot/metadata_finders/go/dep"
|
8
7
|
|
9
8
|
module Dependabot
|
@@ -12,7 +11,6 @@ module Dependabot
|
|
12
11
|
"bundler" => MetadataFinders::Ruby::Bundler,
|
13
12
|
"npm_and_yarn" => MetadataFinders::JavaScript::NpmAndYarn,
|
14
13
|
"composer" => MetadataFinders::Php::Composer,
|
15
|
-
"hex" => MetadataFinders::Elixir::Hex,
|
16
14
|
"dep" => MetadataFinders::Go::Dep
|
17
15
|
}
|
18
16
|
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require "dependabot/update_checkers/ruby/bundler"
|
4
4
|
require "dependabot/update_checkers/java_script/npm_and_yarn"
|
5
5
|
require "dependabot/update_checkers/php/composer"
|
6
|
-
require "dependabot/update_checkers/elixir/hex"
|
7
6
|
require "dependabot/update_checkers/go/dep"
|
8
7
|
|
9
8
|
module Dependabot
|
@@ -12,7 +11,6 @@ module Dependabot
|
|
12
11
|
"bundler" => UpdateCheckers::Ruby::Bundler,
|
13
12
|
"npm_and_yarn" => UpdateCheckers::JavaScript::NpmAndYarn,
|
14
13
|
"composer" => UpdateCheckers::Php::Composer,
|
15
|
-
"hex" => UpdateCheckers::Elixir::Hex,
|
16
14
|
"dep" => UpdateCheckers::Go::Dep
|
17
15
|
}
|
18
16
|
|
@@ -129,8 +129,9 @@ module Dependabot
|
|
129
129
|
elsif error.message.include?("requested PHP extension")
|
130
130
|
extensions = error.message.scan(/\sext\-.*?\s/).map(&:strip).uniq
|
131
131
|
msg = "Dependabot's installed extensions didn't match those "\
|
132
|
-
"required by your application
|
133
|
-
"
|
132
|
+
"required by your application.\n\n"\
|
133
|
+
"Please add the following extensions to the platform "\
|
134
|
+
"config in your composer.json to allow Dependabot to run: "\
|
134
135
|
"#{extensions.join(', ')}.\n\n"\
|
135
136
|
"The full error raised was:\n\n#{error.message}"
|
136
137
|
raise Dependabot::DependencyFileNotResolvable, msg
|
data/lib/dependabot/utils.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "dependabot/utils/elixir/version"
|
4
3
|
require "dependabot/utils/java_script/version"
|
5
4
|
require "dependabot/utils/php/version"
|
6
5
|
require "dependabot/utils/go/version"
|
7
6
|
|
8
|
-
require "dependabot/utils/elixir/requirement"
|
9
7
|
require "dependabot/utils/java_script/requirement"
|
10
8
|
require "dependabot/utils/php/requirement"
|
11
9
|
require "dependabot/utils/ruby/requirement"
|
@@ -21,7 +19,6 @@ module Dependabot
|
|
21
19
|
"docker" => Gem::Version,
|
22
20
|
"npm_and_yarn" => Utils::JavaScript::Version,
|
23
21
|
"composer" => Utils::Php::Version,
|
24
|
-
"hex" => Utils::Elixir::Version,
|
25
22
|
"dep" => Utils::Go::Version
|
26
23
|
}
|
27
24
|
|
@@ -42,7 +39,6 @@ module Dependabot
|
|
42
39
|
"docker" => Utils::Ruby::Requirement,
|
43
40
|
"npm_and_yarn" => Utils::JavaScript::Requirement,
|
44
41
|
"composer" => Utils::Php::Requirement,
|
45
|
-
"hex" => Utils::Elixir::Requirement,
|
46
42
|
"dep" => Utils::Go::Requirement
|
47
43
|
}
|
48
44
|
|
data/lib/dependabot/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dependabot-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.88.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dependabot
|
@@ -298,12 +298,6 @@ files:
|
|
298
298
|
- CHANGELOG.md
|
299
299
|
- LICENSE
|
300
300
|
- README.md
|
301
|
-
- helpers/elixir/bin/check_update.exs
|
302
|
-
- helpers/elixir/bin/do_update.exs
|
303
|
-
- helpers/elixir/bin/parse_deps.exs
|
304
|
-
- helpers/elixir/bin/run.exs
|
305
|
-
- helpers/elixir/mix.exs
|
306
|
-
- helpers/elixir/mix.lock
|
307
301
|
- helpers/go/Makefile
|
308
302
|
- helpers/go/go.mod
|
309
303
|
- helpers/go/go.sum
|
@@ -371,7 +365,6 @@ files:
|
|
371
365
|
- lib/dependabot/file_fetchers.rb
|
372
366
|
- lib/dependabot/file_fetchers/README.md
|
373
367
|
- lib/dependabot/file_fetchers/base.rb
|
374
|
-
- lib/dependabot/file_fetchers/elixir/hex.rb
|
375
368
|
- lib/dependabot/file_fetchers/go/dep.rb
|
376
369
|
- lib/dependabot/file_fetchers/java_script/npm_and_yarn.rb
|
377
370
|
- lib/dependabot/file_fetchers/java_script/npm_and_yarn/path_dependency_builder.rb
|
@@ -384,7 +377,6 @@ files:
|
|
384
377
|
- lib/dependabot/file_parsers/README.md
|
385
378
|
- lib/dependabot/file_parsers/base.rb
|
386
379
|
- lib/dependabot/file_parsers/base/dependency_set.rb
|
387
|
-
- lib/dependabot/file_parsers/elixir/hex.rb
|
388
380
|
- lib/dependabot/file_parsers/go/dep.rb
|
389
381
|
- lib/dependabot/file_parsers/java_script/npm_and_yarn.rb
|
390
382
|
- lib/dependabot/file_parsers/php/composer.rb
|
@@ -394,12 +386,6 @@ files:
|
|
394
386
|
- lib/dependabot/file_updaters.rb
|
395
387
|
- lib/dependabot/file_updaters/README.md
|
396
388
|
- lib/dependabot/file_updaters/base.rb
|
397
|
-
- lib/dependabot/file_updaters/elixir/hex.rb
|
398
|
-
- lib/dependabot/file_updaters/elixir/hex/lockfile_updater.rb
|
399
|
-
- lib/dependabot/file_updaters/elixir/hex/mixfile_git_pin_updater.rb
|
400
|
-
- lib/dependabot/file_updaters/elixir/hex/mixfile_requirement_updater.rb
|
401
|
-
- lib/dependabot/file_updaters/elixir/hex/mixfile_sanitizer.rb
|
402
|
-
- lib/dependabot/file_updaters/elixir/hex/mixfile_updater.rb
|
403
389
|
- lib/dependabot/file_updaters/go/dep.rb
|
404
390
|
- lib/dependabot/file_updaters/go/dep/lockfile_updater.rb
|
405
391
|
- lib/dependabot/file_updaters/go/dep/manifest_updater.rb
|
@@ -429,7 +415,6 @@ files:
|
|
429
415
|
- lib/dependabot/metadata_finders/base/changelog_pruner.rb
|
430
416
|
- lib/dependabot/metadata_finders/base/commits_finder.rb
|
431
417
|
- lib/dependabot/metadata_finders/base/release_finder.rb
|
432
|
-
- lib/dependabot/metadata_finders/elixir/hex.rb
|
433
418
|
- lib/dependabot/metadata_finders/go/dep.rb
|
434
419
|
- lib/dependabot/metadata_finders/java_script/npm_and_yarn.rb
|
435
420
|
- lib/dependabot/metadata_finders/php/composer.rb
|
@@ -448,10 +433,6 @@ files:
|
|
448
433
|
- lib/dependabot/update_checkers.rb
|
449
434
|
- lib/dependabot/update_checkers/README.md
|
450
435
|
- lib/dependabot/update_checkers/base.rb
|
451
|
-
- lib/dependabot/update_checkers/elixir/hex.rb
|
452
|
-
- lib/dependabot/update_checkers/elixir/hex/file_preparer.rb
|
453
|
-
- lib/dependabot/update_checkers/elixir/hex/requirements_updater.rb
|
454
|
-
- lib/dependabot/update_checkers/elixir/hex/version_resolver.rb
|
455
436
|
- lib/dependabot/update_checkers/go/dep.rb
|
456
437
|
- lib/dependabot/update_checkers/go/dep/file_preparer.rb
|
457
438
|
- lib/dependabot/update_checkers/go/dep/latest_version_finder.rb
|
@@ -476,8 +457,6 @@ files:
|
|
476
457
|
- lib/dependabot/update_checkers/ruby/bundler/shared_bundler_helpers.rb
|
477
458
|
- lib/dependabot/update_checkers/ruby/bundler/version_resolver.rb
|
478
459
|
- lib/dependabot/utils.rb
|
479
|
-
- lib/dependabot/utils/elixir/requirement.rb
|
480
|
-
- lib/dependabot/utils/elixir/version.rb
|
481
460
|
- lib/dependabot/utils/go/path_converter.rb
|
482
461
|
- lib/dependabot/utils/go/requirement.rb
|
483
462
|
- lib/dependabot/utils/go/shared_helper.rb
|
@@ -1,92 +0,0 @@
|
|
1
|
-
defmodule UpdateChecker do
|
2
|
-
def run(dependency_name, credentials) do
|
3
|
-
set_credentials(credentials)
|
4
|
-
|
5
|
-
# Update the lockfile in a session that we can time out
|
6
|
-
task = Task.async(fn -> do_resolution(dependency_name) end)
|
7
|
-
case Task.yield(task, 30000) || Task.shutdown(task) do
|
8
|
-
{:ok, {:ok, :resolution_successful}} ->
|
9
|
-
# Read the new lock
|
10
|
-
{updated_lock, _updated_rest_lock} =
|
11
|
-
Map.split(Mix.Dep.Lock.read(), [String.to_atom(dependency_name)])
|
12
|
-
|
13
|
-
# Get the new dependency version
|
14
|
-
version =
|
15
|
-
updated_lock
|
16
|
-
|> Map.get(String.to_atom(dependency_name))
|
17
|
-
|> elem(2)
|
18
|
-
{:ok, version}
|
19
|
-
|
20
|
-
{:ok, {:error, error}} -> {:error, error}
|
21
|
-
|
22
|
-
nil -> {:error, :dependency_resolution_timed_out}
|
23
|
-
|
24
|
-
{:exit, reason} -> {:error, reason}
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
defp set_credentials(credentials) do
|
29
|
-
credentials
|
30
|
-
|> Enum.reduce([], fn cred, acc ->
|
31
|
-
if List.last(acc) == nil || List.last(acc)[:token] do
|
32
|
-
List.insert_at(acc, -1, %{organization: cred})
|
33
|
-
else
|
34
|
-
{item, acc} = List.pop_at(acc, -1)
|
35
|
-
item = Map.put(item, :token, cred)
|
36
|
-
List.insert_at(acc, -1, item)
|
37
|
-
end
|
38
|
-
end)
|
39
|
-
|> Enum.each(fn cred ->
|
40
|
-
hexpm = Hex.Repo.get_repo("hexpm")
|
41
|
-
|
42
|
-
repo = %{
|
43
|
-
url: hexpm.url <> "/repos/#{cred.organization}",
|
44
|
-
public_key: nil,
|
45
|
-
auth_key: cred.token
|
46
|
-
}
|
47
|
-
|
48
|
-
Hex.Config.read()
|
49
|
-
|> Hex.Config.read_repos()
|
50
|
-
|> Map.put("hexpm:#{cred.organization}", repo)
|
51
|
-
|> Hex.Config.update_repos()
|
52
|
-
end)
|
53
|
-
end
|
54
|
-
|
55
|
-
defp do_resolution(dependency_name) do
|
56
|
-
# Fetch dependencies that needs updating
|
57
|
-
{dependency_lock, rest_lock} =
|
58
|
-
Map.split(Mix.Dep.Lock.read(), [String.to_atom(dependency_name)])
|
59
|
-
|
60
|
-
try do
|
61
|
-
Mix.Dep.Fetcher.by_name([dependency_name], dependency_lock, rest_lock, [])
|
62
|
-
{:ok, :resolution_successful}
|
63
|
-
rescue
|
64
|
-
error -> {:error, error}
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
[dependency_name | credentials] = System.argv()
|
70
|
-
|
71
|
-
|
72
|
-
case UpdateChecker.run(dependency_name, credentials) do
|
73
|
-
{:ok, version} ->
|
74
|
-
version = :erlang.term_to_binary({:ok, version})
|
75
|
-
IO.write(:stdio, version)
|
76
|
-
|
77
|
-
{:error, %Hex.Version.InvalidRequirementError{} = error} ->
|
78
|
-
result = :erlang.term_to_binary({:error, "Invalid requirement: #{error.requirement}"})
|
79
|
-
IO.write(:stdio, result)
|
80
|
-
|
81
|
-
{:error, %Mix.Error{} = error} ->
|
82
|
-
result = :erlang.term_to_binary({:error, "Dependency resolution failed: #{error.message}"})
|
83
|
-
IO.write(:stdio, result)
|
84
|
-
|
85
|
-
{:error, :dependency_resolution_timed_out} ->
|
86
|
-
# We do nothing here because Hex is already printing out a message in stdout
|
87
|
-
nil
|
88
|
-
|
89
|
-
{:error, error} ->
|
90
|
-
result = :erlang.term_to_binary({:error, "Unknown error in check_update: #{inspect(error)}"})
|
91
|
-
IO.write(:stdio, result)
|
92
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
[dependency_name | credentials] = System.argv()
|
2
|
-
|
3
|
-
grouped_creds = Enum.reduce credentials, [], fn cred, acc ->
|
4
|
-
if List.last(acc) == nil || List.last(acc)[:token] do
|
5
|
-
List.insert_at(acc, -1, %{ organization: cred })
|
6
|
-
else
|
7
|
-
{ item, acc } = List.pop_at(acc, -1)
|
8
|
-
item = Map.put(item, :token, cred)
|
9
|
-
List.insert_at(acc, -1, item)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
Enum.each grouped_creds, fn cred ->
|
14
|
-
hexpm = Hex.Repo.get_repo("hexpm")
|
15
|
-
repo = %{
|
16
|
-
url: hexpm.url <> "/repos/#{cred.organization}",
|
17
|
-
public_key: nil,
|
18
|
-
auth_key: cred.token
|
19
|
-
}
|
20
|
-
|
21
|
-
Hex.Config.read()
|
22
|
-
|> Hex.Config.read_repos()
|
23
|
-
|> Map.put("hexpm:#{cred.organization}", repo)
|
24
|
-
|> Hex.Config.update_repos()
|
25
|
-
end
|
26
|
-
|
27
|
-
# dependency atom
|
28
|
-
dependency = String.to_atom(dependency_name)
|
29
|
-
|
30
|
-
# Fetch dependencies that needs updating
|
31
|
-
{dependency_lock, rest_lock} = Map.split(Mix.Dep.Lock.read(), [dependency])
|
32
|
-
Mix.Dep.Fetcher.by_name([dependency_name], dependency_lock, rest_lock, [])
|
33
|
-
|
34
|
-
lockfile_content =
|
35
|
-
"mix.lock"
|
36
|
-
|> File.read()
|
37
|
-
|> :erlang.term_to_binary()
|
38
|
-
|
39
|
-
IO.write(:stdio, lockfile_content)
|
@@ -1,103 +0,0 @@
|
|
1
|
-
defmodule Parser do
|
2
|
-
def run do
|
3
|
-
Mix.Dep.load_on_environment([])
|
4
|
-
|> Enum.flat_map(&parse_dep/1)
|
5
|
-
|> Enum.map(&build_dependency(&1.opts[:lock], &1))
|
6
|
-
end
|
7
|
-
|
8
|
-
defp build_dependency(nil, dep) do
|
9
|
-
%{
|
10
|
-
name: dep.app,
|
11
|
-
from: Path.relative_to_cwd(dep.from),
|
12
|
-
groups: [],
|
13
|
-
requirement: normalise_requirement(dep.requirement),
|
14
|
-
top_level: dep.top_level || umbrella_top_level_dep?(dep)
|
15
|
-
}
|
16
|
-
end
|
17
|
-
|
18
|
-
defp build_dependency(lock, dep) do
|
19
|
-
{version, checksum, source} = parse_lock(lock)
|
20
|
-
groups = parse_groups(dep.opts[:only])
|
21
|
-
|
22
|
-
%{
|
23
|
-
name: dep.app,
|
24
|
-
from: Path.relative_to_cwd(dep.from),
|
25
|
-
version: version,
|
26
|
-
groups: groups,
|
27
|
-
checksum: checksum,
|
28
|
-
requirement: normalise_requirement(dep.requirement),
|
29
|
-
source: source,
|
30
|
-
top_level: dep.top_level || umbrella_top_level_dep?(dep)
|
31
|
-
}
|
32
|
-
end
|
33
|
-
|
34
|
-
defp parse_groups(nil), do: []
|
35
|
-
defp parse_groups(only) when is_list(only), do: only
|
36
|
-
defp parse_groups(only), do: [only]
|
37
|
-
|
38
|
-
# path dependency
|
39
|
-
defp parse_dep(%{scm: Mix.SCM.Path, opts: opts} = dep) do
|
40
|
-
cond do
|
41
|
-
# umbrella dependency - ignore
|
42
|
-
opts[:in_umbrella] ->
|
43
|
-
[]
|
44
|
-
|
45
|
-
# umbrella application
|
46
|
-
opts[:from_umbrella] ->
|
47
|
-
Enum.reject(dep.deps, fn dep -> dep.opts[:in_umbrella] end)
|
48
|
-
|
49
|
-
true ->
|
50
|
-
[]
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
# hex, git dependency
|
55
|
-
defp parse_dep(%{scm: scm} = dep) when scm in [Hex.SCM, Mix.SCM.Git], do: [dep]
|
56
|
-
|
57
|
-
# unsupported
|
58
|
-
defp parse_dep(_dep), do: []
|
59
|
-
|
60
|
-
defp umbrella_top_level_dep?(dep) do
|
61
|
-
if Mix.Project.umbrella?() do
|
62
|
-
apps_paths = Path.expand(Mix.Project.config()[:apps_path], File.cwd!())
|
63
|
-
String.contains?(Path.dirname(Path.dirname(dep.from)), apps_paths)
|
64
|
-
else
|
65
|
-
false
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
defp parse_lock({:git, repo_url, checksum, opts}),
|
70
|
-
do: {nil, checksum, git_source(repo_url, opts)}
|
71
|
-
|
72
|
-
defp parse_lock({:hex, _app, version, checksum, _managers, _dependencies, _source}),
|
73
|
-
do: {version, checksum, nil}
|
74
|
-
|
75
|
-
defp parse_lock({:hex, _app, version, checksum, _managers, _dependencies}),
|
76
|
-
do: {version, checksum, nil}
|
77
|
-
|
78
|
-
defp normalise_requirement(req) do
|
79
|
-
req
|
80
|
-
|> maybe_regex_to_str()
|
81
|
-
|> empty_str_to_nil()
|
82
|
-
end
|
83
|
-
|
84
|
-
defp maybe_regex_to_str(s), do: if Regex.regex?(s), do: Regex.source(s), else: s
|
85
|
-
defp empty_str_to_nil(""), do: nil
|
86
|
-
defp empty_str_to_nil(s), do: s
|
87
|
-
|
88
|
-
def git_source(repo_url, opts) do
|
89
|
-
ref = opts[:ref] || opts[:tag]
|
90
|
-
ref = if is_list(ref), do: to_string(ref), else: ref
|
91
|
-
|
92
|
-
%{
|
93
|
-
type: "git",
|
94
|
-
url: repo_url,
|
95
|
-
branch: opts[:branch] || "master",
|
96
|
-
ref: ref
|
97
|
-
}
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
dependencies = :erlang.term_to_binary({:ok, Parser.run()})
|
102
|
-
|
103
|
-
IO.write(:stdio, dependencies)
|