Parses GitHub repository references in the format owner/repo[/path][@ref].
owner/repo[/path][@ref]
@type t() :: %SkillKit.Kit.GitHub.Ref{ owner: String.t(), path: String.t() | nil, ref: String.t() | nil, repo: String.t() }
@spec allowed?(t(), String.t() | [String.t()]) :: boolean()
@spec cache_key(t()) :: String.t()
@spec display_name(t()) :: String.t()
@spec parse(String.t()) :: {:ok, t()} | {:error, :invalid_reference}