File: release.ex

package info (click to toggle)
erlang-hex 2.0.6-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,204 kB
  • sloc: erlang: 2,950; sh: 203; makefile: 10
file content (41 lines) | stat: -rw-r--r-- 1,161 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
defmodule Hex.API.Release do
  @moduledoc false

  alias Hex.API

  def get(repo, name, version, auth \\ []) do
    path = "packages/#{URI.encode(name)}/releases/#{URI.encode(version)}"
    API.request(:get, repo, path, auth)
  end

  def publish(repo, tar, auth, progress \\ fn _ -> nil end, replace \\ false)

  def publish(repo, tar, auth, progress, replace?) do
    Hex.API.check_write_api()

    path = "publish?replace=#{replace?}"
    opts = [progress: progress] ++ auth
    API.tar_post_request(repo, path, tar, opts)
  end

  def delete(repo, name, version, auth) do
    Hex.API.check_write_api()

    path = "packages/#{URI.encode(name)}/releases/#{URI.encode(version)}"
    API.request(:delete, repo, path, auth)
  end

  def retire(repo, name, version, body, auth) do
    Hex.API.check_write_api()

    path = "packages/#{URI.encode(name)}/releases/#{URI.encode(version)}/retire"
    API.erlang_post_request(repo, path, body, auth)
  end

  def unretire(repo, name, version, auth) do
    Hex.API.check_write_api()

    path = "packages/#{URI.encode(name)}/releases/#{URI.encode(version)}/retire"
    API.request(:delete, repo, path, auth)
  end
end