https://github.com/yanyongyu/githubkit
The modern, all-batteries-included GitHub SDK for Python, including rest api, graphql, webhooks, like octokit!
https://github.com/yanyongyu/githubkit
async github github-api github-sdk httpx octokit pydantic python sync
Last synced: 6 months ago
JSON representation
The modern, all-batteries-included GitHub SDK for Python, including rest api, graphql, webhooks, like octokit!
- Host: GitHub
- URL: https://github.com/yanyongyu/githubkit
- Owner: yanyongyu
- License: mit
- Created: 2022-07-09T08:55:35.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-05-06T14:44:19.000Z (6 months ago)
- Last Synced: 2025-05-06T15:54:04.233Z (6 months ago)
- Topics: async, github, github-api, github-sdk, httpx, octokit, pydantic, python, sync
- Language: Python
- Homepage: https://yanyongyu.github.io/githubkit/
- Size: 32.7 MB
- Stars: 263
- Watchers: 2
- Forks: 32
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/yanyongyu/githubkit)
_✨ The modern, all-batteries-included GitHub SDK for Python ✨_
_✨ Support both **sync** and **async** calls, **fully typed** ✨_
_✨ Always up to date, like octokit ✨_
Documentation |
Report Bug |
GitHub Docs
githubkit aims to be an easy-to-use, fully typed, and always up-to-date GitHub SDK for Python. It is inspired by [octokit](https://github.com/octokit).
githubkit provides several features including:
- Support both sync and async calls
- Multiple authentication ways and OAuth flow support
- Calling REST API and GraphQL easily
- REST API versioning, including GHEC
- Built-in pagination support
- Optional data validation with [Pydantic](https://docs.pydantic.dev/latest/), for both webhook events and REST API responses
- Built-in http cache (powered by [Hishel](https://hishel.com/) for HTTPX) and auto retry
- Lazy loading of APIs and models
- Fully typed APIs
## Getting Started
For more, see the [documentation](https://yanyongyu.github.io/githubkit).
### Installation
Install githubkit with the package manager of your choice:
```bash
pip install githubkit
# or, use poetry
poetry add githubkit
# or, use pdm
pdm add githubkit
# or, use uv
uv add githubkit
```
### Usage
Create a [Personal Access Token (PAT)](https://github.com/settings/personal-access-tokens/new) and use it to create a `GitHub` instance:
```python
from githubkit import GitHub
github = GitHub("")
```
Then, enjoy githubkit now!
```python
from githubkit import Response
from githubkit.versions.latest.models import FullRepository
resp: Response[FullRepository] = github.rest.repos.get("owner", "repo")
repo: FullRepository = resp.parsed_data
print(repo.full_name)
```
## Development
See the [development](https://yanyongyu.github.io/githubkit/contributing/) in the contributing guide.
## Contributors
Thanks to the following people who have contributed to this project: