gidgethub
An async GitHub API library
What it is and what it does
Gidgethub is a sans-I/O asynchronous library for the GitHub API that separates GitHub protocol logic from HTTP transport. It provides a base library that handles GitHub-specific details without doing any I/O itself, letting you plug in whatever async HTTP client you prefer. On top of that base, it offers an abstract base class and concrete implementations for immediate usage.
The library is designed for developers who want to automate GitHub workflows, build bots, or integrate GitHub data into applications. It requires Python 3.8 or later and depends only on uritemplate and PyJWT for URL templating and JWT token handling. With 417 stars and active maintenance, it's a stable choice for GitHub API integration in async Python applications.
Use it for:
- Build GitHub bots that respond to webhooks and automate repository management tasks
- Fetch repository metadata, issues, pull requests, and other GitHub data for analysis or reporting
- Automate CI/CD workflows by creating checks, updating statuses, or managing releases via the GitHub API
- Integrate GitHub events into monitoring or notification systems that need async I/O
- Develop tools that interact with multiple repositories programmatically
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Gidgethub is an asynchronous GitHub API library that handles GitHub-specific protocol details without performing I/O itself, letting you choose your HTTP client.
Yes. Gidgethub is a stable, actively maintained library with low install friction and permissive licensing. It's well-suited for async Python applications that need to interact with the GitHub API. The sans-I/O design gives you flexibility to choose your HTTP client. No known vulnerabilities and broad Python version support (3.8–3.13) make it a reliable choice.
Install
gidgethub on PyPI
pip
pip install gidgethubuv
uv add gidgethubpoetry
poetry add gidgethubInstalling gidgethub
Before you install
Low install friction with only two runtime dependencies (uritemplate and PyJWT). Active maintenance with a recent commit on 2026-06-03 and stable production status.
License in practice
Licensed under Apache (permissive), so you can use it freely in commercial and open-source projects without viral obligations.
Quickstart
pip install gidgethub
import gidgethub
# Use gidgethub with your chosen async HTTP library
Requires Python 3.8 or later; you must also install an async HTTP library to use gidgethub's concrete implementations.
Verify before relying
- Which async HTTP libraries have concrete implementations provided by gidgethub
- Specific GitHub API endpoints and features covered by the library
- Whether the sans-I/O base library can be used independently of concrete implementations
Package facts
| License | Apache (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — uritemplate, PyJWT |
| Maintenance | actively maintained — 437 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 618,787/month — #5,732 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: gidgethub-5.4.0-py3-none-any.whl
Keywords: github, sans-io, async
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
ghapighapi provides a complete, always-current…
permissive · top 1,000 on PyPI
agithubA lightweight REST API client with transparent…
permissive · top 15,000 on PyPI
socksioSocksio is a sans-I/O SOCKS protocol…
permissive · top 1,000 on PyPI
websocketswebsockets is a library for building WebSocket…
permissive · top 100 on PyPI
meross-iotA Python library for controlling Meross IoT…
permissive · top 15,000 on PyPI
aiogithubapiAsynchronous Python client library for…
permissive · top 15,000 on PyPI
pyairtablePython client library for interacting with the…
permissive · top 5,000 on PyPI
trio-websocketImplements WebSocket protocol (RFC 6455) for…
permissive · top 1,000 on PyPI
PyGithubPyGithub provides Python access to the GitHub…
copyleft · top 1,000 on PyPI
github-action-utilsProvides Python functions to invoke GitHub…
permissive · top 5,000 on PyPI