Using GitHub API with Python

Vinayak Pandey
1 min readSep 8, 2020

In this post we’ll see how we can use GitHub api to pull data about repositories. Our objective is to find some highly rated Python projects on GitHub.

Code:

import requests
import pygal
from pygal.style import LightColorizedStyle as LCS, LightenStyle as LS
import webbrowser

url = 'https://api.github.com/search/repositories?q=language:python&sort=stars'
r = requests.get(url)
response_dict = r.json()
#print("Total repositories:", response_dict['total_count'])

repo_dicts = response_dict['items']

names, stars = [], []

for repo_dict in repo_dicts:
names.append(repo_dict['name'])

plot_dict = {
'value': repo_dict['stargazers_count'],
'xlink': repo_dict['html_url'],
}
stars.append(plot_dict)

my_style = LS('#333366', base_style=LCS)
my_config = pygal.Config()
my_config.x_label_rotation = 45
my_config.show_legend = False
my_config.title_font_size = 24
my_config.label_font_size = 14
my_config.major_label_font_size = 18
my_config.truncate_label = 15
my_config.show_y_guides = False
my_config.width = 1000
chart = pygal.Bar(style=my_style, x_label_rotation=45, show_legend=False)
chart.title = 'Most-Starred Python Projects on GitHub'
chart.x_labels = names
chart.add('', stars)
chart.render_to_file('python_repos.svg')
webbrowser.open('python_repos.svg')

Execute this code and it’ll create an svg file which you can open in a browser.

You can play with the url variable and fetch data for other programming languages also.

--

--