I do not understand why we care about the protocol the main project uses. Why introduce this dependency? - Clearly we need to use a github supported protocol, but by checking for the main project protocol we can encounter any of the following unsupported ``ssh:// ftp:// rsync:// http:// /path/to/repo.git and file:///path/to/repo.git``, although this might happen rarely. If the user care about what protocol is used, let him/her specify that through the commandline option. And THEN raise an error if an unsupported protocol is specified through the commandline.

Why is it unexpected that a different protocol from the github supported is used?