reupen / aiogithub

asyncio-based GitHub API client
https://aiogithub.readthedocs.io
BSD 3-Clause "New" or "Revised" License
15 stars 3 forks source link
asyncio github github-api python-3 python-3-7 python-3-8

aiogithub

Build Status Requirements Status Documentation Status

asyncio- and aiohttp-based Python 3.7 and newer GitHub API client.

Note: This library is a work in progress. So far, select read operations have been implemented.

A simple example

import asyncio

from aiogithub import GitHub

# To use the GitHub API authenticated, you can either set the 
# GITHUB_TOKEN environment variable with a personal access token 
# as the value, or explicitly set the token here. Leave as None to 
# use the API unauthenticated. 
TOKEN = None

async def main():
    async with GitHub(TOKEN) as api:
        user = await api.get_user('reupen')
        print(user.login)
        # user is also a dict, so you can see the underlying data via
        # print(user)

        # Get this user's repos. There's no need to worry about
        # pagination – you can simply iterate over list objects like
        # this and pages will be retrieved as needed:
        async for repo in user.get_repos():
            pass # Do something with each repo here

        # Or you can fetch the entire list like this:
        repos = await user.get_repos().all()
        # Do something with repos

asyncio.get_event_loop().run_until_complete(main())

Installation

Currently, only development versions are available. You can install the current development version by running:

pip install git+https://github.com/reupen/aiogithub.git#egg=aiogithub