Packages
dagger
0.18.5
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.8
0.20.7
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.11
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.19
0.18.18
0.18.17
0.18.16
0.18.15
0.18.14
0.18.13
0.18.12
0.18.11
0.18.10
0.18.9
0.18.8
0.18.7
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.2
0.0.0
retired
Dagger SDK for Elixir
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/git_ref.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.GitRef do
@moduledoc """
A git ref (tag, branch, or commit).
"""
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
The resolved commit id at this ref.
"""
@spec commit(t()) :: {:ok, String.t()} | {:error, term()}
def commit(%__MODULE__{} = git_ref) do
query_builder =
git_ref.query_builder |> QB.select("commit")
Client.execute(git_ref.client, query_builder)
end
@doc """
A unique identifier for this GitRef.
"""
@spec id(t()) :: {:ok, Dagger.GitRefID.t()} | {:error, term()}
def id(%__MODULE__{} = git_ref) do
query_builder =
git_ref.query_builder |> QB.select("id")
Client.execute(git_ref.client, query_builder)
end
@doc """
The resolved ref name at this ref.
"""
@spec ref(t()) :: {:ok, String.t()} | {:error, term()}
def ref(%__MODULE__{} = git_ref) do
query_builder =
git_ref.query_builder |> QB.select("ref")
Client.execute(git_ref.client, query_builder)
end
@doc """
The filesystem tree at this ref.
"""
@spec tree(t(), [{:discard_git_dir, boolean() | nil}, {:depth, integer() | nil}]) ::
Dagger.Directory.t()
def tree(%__MODULE__{} = git_ref, optional_args \\ []) do
query_builder =
git_ref.query_builder
|> QB.select("tree")
|> QB.maybe_put_arg("discardGitDir", optional_args[:discard_git_dir])
|> QB.maybe_put_arg("depth", optional_args[:depth])
%Dagger.Directory{
query_builder: query_builder,
client: git_ref.client
}
end
end
defimpl Jason.Encoder, for: Dagger.GitRef do
def encode(git_ref, opts) do
{:ok, id} = Dagger.GitRef.id(git_ref)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.GitRef do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_git_ref_from_id(Dagger.Global.dag(), id)}
end
end