Skip to content

Commit 6d5871a

Browse files
committed
Require --name for hex.registry add
1 parent e229b45 commit 6d5871a

File tree

2 files changed

+7
-39
lines changed

2 files changed

+7
-39
lines changed

lib/mix/tasks/hex.registry.ex

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -112,30 +112,29 @@ defmodule Mix.Tasks.Hex.Registry do
112112
## Add
113113

114114
defp add(public_dir, packages, opts) do
115-
repo_name_or_nil = opts[:name]
116-
private_key_path = opts[:private_key] || raise "missing --private-key"
115+
repo_name = opts[:name] || Mix.raise("missing --name")
116+
private_key_path = opts[:private_key] || Mix.raise("missing --private-key")
117117
private_key = private_key_path |> File.read!() |> decode_private_key()
118-
add(repo_name_or_nil, public_dir, private_key, packages)
118+
add(repo_name, public_dir, private_key, packages)
119119
end
120120

121-
defp add(repo_name_or_nil, public_dir, private_key, packages) do
121+
defp add(repo_name, public_dir, private_key, packages) do
122122
public_key = ensure_public_key(private_key, public_dir)
123123

124124
existing_names =
125-
read_names!(repo_name_or_nil, public_dir, public_key)
125+
read_names!(repo_name, public_dir, public_key)
126126
|> Enum.map(fn %{name: name, updated_at: updated_at} -> {name, updated_at} end)
127127
|> Enum.into(%{})
128128

129129
existing_versions =
130-
read_versions!(repo_name_or_nil, public_dir, public_key)
130+
read_versions!(repo_name, public_dir, public_key)
131131
|> Enum.map(fn %{name: name, versions: versions} ->
132132
{name, %{updated_at: existing_names[name], versions: versions}}
133133
end)
134134
|> Enum.into(%{})
135135

136136
tarball_dir = Path.join(public_dir, "tarballs")
137137
create_directory(tarball_dir)
138-
repo_name = repo_name_or_nil || read_repository_name!(public_dir, private_key)
139138

140139
paths_per_name =
141140
packages
@@ -371,23 +370,6 @@ defmodule Mix.Tasks.Hex.Registry do
371370
end
372371
end
373372

374-
defp read_repository_name!(public_dir, public_key) do
375-
path = Path.join(public_dir, "names")
376-
payload = read_file!(path)
377-
378-
case :mix_hex_registry.get_repository_name(payload, public_key) do
379-
{:ok, repo_name} ->
380-
repo_name
381-
382-
_ ->
383-
Mix.raise("""
384-
Invalid package name manifest at #{path}
385-
386-
Is the public key correct?
387-
""")
388-
end
389-
end
390-
391373
defp read_package(repo_name, public_dir, public_key, package_name) do
392374
path = Path.join([public_dir, "packages", package_name])
393375

src/mix_hex_registry.erl

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
%% Vendored from hex_core v0.8.2, do not edit manually
1+
%% Vendored from hex_core v0.8.0, do not edit manually
22

33
%% @doc
44
%% Functions for encoding and decoding Hex registries.
@@ -8,7 +8,6 @@
88
decode_names/2,
99
build_names/2,
1010
unpack_names/3,
11-
get_repository_name/2,
1211
encode_versions/1,
1312
decode_versions/2,
1413
build_versions/2,
@@ -63,19 +62,6 @@ decode_names(Payload, Repository) ->
6362
{error, unverified}
6463
end.
6564

66-
%% @doc
67-
%% Get the encoded repository name.
68-
get_repository_name(Payload, PublicKey) ->
69-
case decode_and_verify_signed(zlib:gunzip(Payload), PublicKey) of
70-
{ok, Names} -> decode_repository_name(Names);
71-
Other -> Other
72-
end.
73-
74-
%% @private
75-
decode_repository_name(Payload) ->
76-
#{repository := Repository} = mix_hex_pb_names:decode_msg(Payload, 'Names'),
77-
{ok, Repository}.
78-
7965
%% @doc
8066
%% Builds versions resource.
8167
build_versions(Versions, PrivateKey) ->

0 commit comments

Comments
 (0)