2017-06-11 1 views
0

Im folgenden Programmfragment klone ich ein vorhandenes Repo von einem Remotestandort, und es funktioniert ordnungsgemäß.Verhindern, dass GitPython nach Anmeldeinformationen fragt, wenn ein nicht vorhandenes Remote-Repo geklont werden soll

Dann versuche ich ein nicht existierendes Repo zu klonen, und dieses Mal fordert der Anruf an git.Repo.clone_from() einen Namen und ein Passwort von der Tastatur an.

Blockieren während des Wartens auf Tastatureingabe ist in meiner Anwendung höchst unerwünscht, und wenn der Repo nicht vorhanden ist, möchte ich den Aufruf an git.Repo.clone_from() stattdessen eine Ausnahme auslösen.

Gibt es eine Möglichkeit, dies zu verursachen, oder irgendwie zu erkennen, ob es ein Git Repo bei einer vorhandenen URL gibt, bevor ich sogar versuche, es zu klonen?

import git, shutil 

DIRECTORY = '/tmp/clone' 


def clone(url): 
    print(url) 
    shutil.rmtree(DIRECTORY, ignore_errors=True) 
    git.Repo.clone_from(url=url, to_path=DIRECTORY, b='master') 


clone('https://github.com/ManiacalLabs/BiblioPixelAnimations.git/') 
clone('https://github.com/ManiacalLabs/NONEXISTENT.git/') 

Antwort

1

einen leeren Benutzernamen und Passwort Putting sollte es tun

clone('https://:@github.com/ManiacalLabs/BiblioPixelAnimations.git/') 
clone('https://:@github.com/ManiacalLabs/NONEXISTENT.git/') 

Hinweis gibt es :@ vor github.com.

+0

Ich habe es gerade mit meinem Testprogramm ausprobiert und es hat beim ersten Mal richtig geklappt - A +++. –

Verwandte Themen