spec = _{ SOI ~ url ~ ("#" ~ branch)? ~ EOI }
url = _{ full_url | short_url }
full_url = { "http" ~ "s"? ~ "://" ~ ((!"/" ~ ANY)+ ~ "/")+ ~ repo ~ ".git"? }
short_url = { user ~ "/" ~ repo }
user = @{ ident }
repo = @{ ident }
branch = @{ ident ~ ("/" ~ ident)? }
ident = _{ (ASCII_ALPHA | ASCII_DIGIT | "_" | "-")+ }