/ / `git ls-remote` dans GitPython - python, git, gitpython

`git ls-remote` dans GitPython - python, git, gitpython

Dans mon programme python, je veux vérifier s’il existe une référence sur ma télécommande. Je peux vérifier la télécommande avec git ls-remote, mais j’aimerais éviter d’analyser moi-même la sortie.

j'ai trouvé git.remote.Remote dans GitPython, mais cela ne fait référence qu’à une télécommande d’un référentiel local.

Est-ce que GitPython avoir une commande équivalente qui me permet de regarder des références distantes sans cloner le référentiel?

Réponses:

8 pour la réponse № 1

GitPython ne supporte pas ls-remote, mais vous pouvez utiliser git.cmd pour exécuter une commande git puis analyser manuellement le résultat:

import git
def lsremote(url):
remote_refs = {}
g = git.cmd.Git()
for ref in g.ls_remote(url).split("n"):
hash_ref_list = ref.split("t")
remote_refs[hash_ref_list[1]] = hash_ref_list[0]
return remote_refs

Exemple:

In [3]: refs = lsremote("https://github.com/gitpython-developers/GitPython.git")
In [4]: refs["HEAD"]
Out[4]: u"9f4af7c6db25c5bbec7fdc8dfc0ea6803350d94c"