是否可以使用pyGithub获取发布版本?

9

我还没有使用过PyGithub,但是我很好奇是否有可能从存储库(例如https://github.com/{username}/{repo-name}/releases)中获取发行版列表。在这里的文档,我没有看到任何相关的信息。


如果您对PyGithub没有特定的要求,我强烈推荐使用github3.py,它支持此API。 - kfb
3个回答

9

这个问题有点老,但似乎没有人按照提问者的方式回答。

PyGithub确实有一种方法可以返回仓库的发布版本,以下是一个有效的示例:

from github import Github

G = Github('')  # Put your GitHub token here
repo = G.get_repo('justintime50/github-archive')
releases = repo.get_releases()

for release in releases:
    print(release.title)

以上将返回以下内容:
v4.3.0
v4.2.2
v4.2.1
v4.2.0
v4.1.1
...

我希望这对你有所帮助!

2
PyGithub文档没有提到,但我认为今天发布的PyPi上的最新版本pygithub-1.29中确实包含此API:在v1.29标签下Repository.py文件中包含一个get_releases()函数。此外,还有一个未合并的开放请求,似乎会将此API扩展以包括资产。

2

您可以通过向GitHub仓库发出GET请求来获取发布版本列表。

https://api.github.com/repos/{user}/{repo}/releases

Eg

import requests

url = 'https://api.github.com/repos/facebook/react/releases'
response = requests.get(url)

# Raise an exception if the API call fails.
response.raise_for_status()

data = response.json()

此外,值得注意的是,您应该进行身份验证请求,否则您很快就会触发GitHub API速率限制,并且只会收到403错误。

1
谢谢您的回答,但我在考虑只使用PyGithub来维护我的要求到GitHub,但我发现我需要创建一个单独的函数。 - widget
你究竟想要做什么? - Mat
我想要制作一些通知,关于那些对我最有趣的代码库的新版本,这些版本将会从yaml或类似文件中加载。 - widget
我还有点不确定你需要做什么。你想知道何时发布软件包,以便更新项目的第三方要求吗? - Mat
那么你可以在你的requirements.txt文件中定义它。例如Django djangorestframework然后运行pip install -r requirements.txt这将安装每个软件包的最新版本。您还可以在要求文件中定义版本,如下所示Django==1.10.3 - Mat
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接