the remote to connect to
git_direction.GIT_DIRECTION_FETCH if you want to fetch or git_direction.GIT_DIRECTION_PUSH if you want to push
the callbacks to use for this connection
proxy settings
extra HTTP headers to use in this connection
0 or an error code
Open a connection to a remote
The transport is selected based on the URL. The direction argument is due to a limitation of the git protocol (over TCP or SSH) which starts up a specific binary which can only do the one or the other.