I am looking for a way to clone locally, a remote private git repository via python. Git i.e. not specific to a version control provider. Ideally I am looking to establish a connection with the remote repo(provider) using the credentials and then clone(emulate what would happen through bash) or just download the repo. This needs to happen via the python-script though. The credentials would be provided to the script as encoded arguments on console execution. Everything I have tried so far seems to have a quirk that does not solve the issue entirely.
This post seems to solve the issue of cloning a public repo(GitPython): https://stackoverflow.com/a/2472616/6599916
Searching through stack and the GitPython documentation I haven't found a way to set authentication credentials through the GitPython library though. If anyone has implemented this it would be greatly appreciated.Furthermore, in the past, I have implemented a version of this with a user prompt, but only for GitHub by employing requests to authenticate and then download the zip file of the remote repo. I can still use this, just for github.
remoteReply = requests.get(remURL, timeout=20, auth=credentials)
- Also, I tried this: https://github.community/t5/How-to-use-Git-and-GitHub/Clone-private-repo/td-p/12616
which is still just for github. I would have tried a gitlab implemention but this yields errors when user password contains special characters like @. Is there a way to resolve this?
Finally, an implementation via the APIs of version control providers would be feasible if there existed a way to authenticate via username and password. All info regarding my issue circles around using sha or tokens which are not a solution in my case.