我希望能够检查给定存储库的最新标签是什么(我在这里使用 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'
因为
blob
看起来像这样:
'bc1c8af8ef2563802767404c78c8ec6d6a967897\trefs/tags/v3.9.0a6\ndcd4 (...)'
但是:有没有更干净的方法来获取最新标签?
最好使用
gitpython
,但任何其他包也可以。
git ls-remote
是 git 套件的一个稳定且有记录的命令,因此解析其输出已经是获取所需信息的有效且稳定的方法。AFAIK,目前还没有一个 python 包装器来通过 python 方法查找所述引用的存在或值,但所述方法的实现看起来很像你自己编写的。
这个与 gitpython 库一起使用:
from git import Repo
repo = Repo('https://github.com/readme')
repo_tags = repo.git.ls_remote("--tags",'https://github.com/readme',sort='-v:refname')
print(rr.split('\n')[0].split('/')[-1])