GitPython:获取远程存储库的最新标签

pon*_*dto 5 python git git-tag gitpython

我希望能够检查给定存储库的最新标签是什么(我在这里使用 CPython 作为示例)。

以下作品:

g = git.cmd.Git()
blob = g.ls_remote('https://github.com/python/cpython', sort='-v:refname', tags=True)
blob.split('\n')[0].split('/')[-1]  # 'v3.9.0a6'
Run Code Online (Sandbox Code Playgroud)

因为blob看起来像这样:

'bc1c8af8ef2563802767404c78c8ec6d6a967897\trefs/tags/v3.9.0a6\ndcd4 (...)'
Run Code Online (Sandbox Code Playgroud)

但是:有没有更干净的方法来获取最新标签?

最好使用gitpython但任何其他包也可以。

LeG*_*GEC 1

git ls-remote是 git 套件的一个稳定且有记录的命令,因此解析其输出已经是获取所需信息的有效且稳定的方法。(我挖出了一份发行说明,其中指定在1.5.4
版本(2007-2008 年某个地方发布)中用 C 重写了它,这意味着它在以前的版本中已经作为脚本存在)

AFAIK,目前还没有一个 python 包装器来通过 python 方法查找所述引用的存在或值,但所述方法的实现看起来很像你自己编写的。