В скрипте python, который я хотел бы иметь возможность выполнять из некоторого произвольного места в рабочем дереве репозиториев git, в каком-то произвольном репозитории git, и я хотел бы использовать GitPython для извлечения некоторой информации об указанном репозитории.
Я могу получить нужную мне информацию из объекта Repo, но я не могу понять, как открыть объект Repo, но для конструктора Repo требуется путь к репозиторию-root.
Есть ли способ создать объект репо с путем к чему-то в репо, а не только к корневому местоположению репо? В качестве альтернативы есть ли способ запросить местоположение корня репо для заданного пути?
Я ищу что-то вроде:
import git
r = git.Repo('whatever repo the cwd is in')
Следующие работы, но я нахожу это безнадежно неуклюжим:
import git
import subprocess
rtpath = subprocess.check_output(["git", "rev-parse", "--show-toplevel"])
repo = git.Repo(rtpath.strip())