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

问题描述 投票:0回答:2

我希望能够检查给定存储库的最新标签是什么(我在这里使用 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
,但任何其他包也可以。

python git git-tag gitpython
2个回答
1
投票

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

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


0
投票

这个与 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])
© www.soinside.com 2019 - 2024. All rights reserved.