2017-06-11 1 views
0

Dans le fragment de programme ci-dessous, je clone un repo existant à partir d'un emplacement distant et fonctionne correctement.Empêcher GitPython de demander des informations d'identification lors de la tentative de clonage d'un repo distant inexistant

Puis j'essaye de cloner un repo inexistant, et cette fois l'appel à git.Repo.clone_from() demande un nom et un mot de passe du clavier.

Le blocage en attente d'une saisie au clavier est hautement indésirable dans mon application, et donc si le repo n'existe pas, je souhaite que l'appel git.Repo.clone_from() lève une exception à la place.

Y at-il un moyen de provoquer cela, ou de détecter d'une façon ou d'une autre s'il existe ou non un repo git sur une URL existante avant même d'essayer de le cloner?

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/') 

Répondre

1

Mettre un nom d'utilisateur et mot de passe vide devrait faire l'affaire

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

Remarque il y a :@ avant github.com.

+0

Je viens de l'essayer avec mon programme de test et cela a fonctionné correctement la première fois - A +++. –