defmodule GitGud.Repositories.GitRef do
use Ecto.Schema
import Ecto.Changeset
alias GitGud.Repositories.Repository
@primary_key false
schema "git_refs" do
field :name, :string, primary_key: true
field :target_sha, :binary
field :peeled_sha, :binary
field :ref_type, :string, default: "branch"
field :updated_at, :utc_datetime
belongs_to :repository, Repository, primary_key: true
end
def changeset(ref, attrs) do
ref
|> cast(attrs, [:name, :target_sha, :peeled_sha, :ref_type])
|> validate_required([:name, :target_sha, :ref_type])
|> validate_inclusion(:ref_type, ~w(branch tag))
end
end
650 B · text
5af55d9