I havent used PyGithub yet but I am just curious if there is any possibility to get a list of releases from a repository (e.g. https://github.com/{username}/{repo-name}/releases
). I can not see any information about that in documentation here.
-
If you have no specific requirements for PyGithub I can strongly recommend `github3.py`, which does support this API. – kfb Nov 07 '16 at 11:49
3 Answers
The question is a bit old but nobody seems to have answered it in the way the OP asked.
PyGithub does have a way to return releases of a repo, here is a working example:
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)
The above will return the following:
v4.3.0
v4.2.2
v4.2.1
v4.2.0
v4.1.1
...
I hope this is helpful!

- 595
- 8
- 20
You can get a list of releases from a GitHub repo by making a GET request to
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()
Also its worth noting you should be making authenticated requests otherwise you'll hit GitHubs API rate limiting pretty quickly and just get back 403s.

- 1,345
- 9
- 15
-
1thanks for answering but i was thinking about using just PyGithub to maintain my requirements to github but i see that i will need to create separate function for this. – widget Nov 07 '16 at 10:50
-
-
I want to make some notification about new releases of most interesting repositories for me which will be loaded from `yaml` or similar. – widget Nov 07 '16 at 14:15
-
Are these repos you own? If so you could set up a webhook and listen for a release event https://developer.github.com/v3/activity/events/types/#releaseevent – Mat Nov 07 '16 at 14:46
-
-
I'm still a little unsure as to what you need to do. Do you want to know when packages are being released so you can update your projects third party requirements? – Mat Nov 07 '16 at 15:29
-
So you could then just define this in your requirements.txt file. For example ``` Django djangorestframework ``` and then run `pip install -r requirements.txt` This would install the latest version of each package. You can also define versions in your requirements file like so `Django==1.10.3` – Mat Nov 07 '16 at 15:38
-
i see that I misunderstood your previous comment. I don't mean python requirements but just other requirements like for infrastructure components like `docker`, `kubernetes`, `prometheus` and so on – widget Nov 07 '16 at 18:01
The documentation for PyGithub doesn't mention it, but I believe that pygithub-1.29
(the latest published on PyPi as of today) does in fact contain this API: Repository.py
for the v1.29
tag contains a get_releases()
function.
There is also an open, unmerged pull request that appears to fill out this API to include assets, too.

- 6,252
- 6
- 40
- 51