Это непроверенный ответ, но я думаю, это было бы довольно легко сделать с помощью sphinx в скрипте conf.py
. Поскольку этот скрипт просто Python, вы можете сделать что-то вроде этого:
import subprocess
...
path_to_source = "../src"
release = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=path_to_source)
version = subprocess.check_output(["git", "describe", "--tags", "HEAD"], cwd=path_to_source)
Естественно, вы можете захотеть выполнить некоторую обработку строк в выходных данных команд, чтобы получить их так, как вы хотите, и некоторую проверку ошибок, но основная идея должна сохраниться.
Как я уже сказал, я не проверял это, поэтому я могу быть совершенно неправ, поэтому скажите мне, если вы обнаружите проблему с этой идеей.