Desired source checkout. Git is the first supported backend.
@type dirty_policy() :: :error | :reset | :ignore
@type ref_kind() :: :branch | :tag | :revision | :unknown
@type t() :: %HostKit.Resources.Source{ checkout: String.t(), depends_on: [term()], dirty: dirty_policy(), meta: map(), name: atom() | String.t(), path: String.t(), ref: String.t(), ref_kind: ref_kind(), revision: String.t() | nil, type: type(), uri: String.t() }
@type type() :: :git
@spec new( atom() | String.t(), keyword() ) :: t()