A Python package for interacting with the GitHub API, offering a simple interface to access repositories, users, organizations, issues, and more for automation and data management.
Project description
ghnova
Note: This project is still in progress. The promised features are not fully ready yet, and APIs are subject to change.
A Python package for interacting with the GitHub API. This package provides a simple and intuitive interface to access GitHub repositories, users, organizations, issues, and more, enabling seamless integration with GitHub instances for automation, data retrieval, and management tasks.
Features
Full API Coverage: Access to repositories, users, organizations, issues, pull requests, and more.
- Easy Authentication: Support for token-based authentication.
- Asynchronous Support: Built with async/await for non-blocking operations.
- Type Hints: Full type annotations for better IDE support and code reliability.
- Comprehensive Documentation: Detailed guides and API reference.
- Command-Line Interface: Interact with the GitHub API directly from the terminal for quick, scriptable operations without writing code.
Installation
We recommend using uv to manage virtual environments for installing ghnova.
If you don't have uv installed, you can install it with pip. See the project pages for more details:
- Install via pip:
pip install --upgrade pip && pip install uv - Project pages: uv on PyPI | uv on GitHub
- Full documentation and usage guide: uv docs
Requirements
- Python 3.10 or higher
- Operating System: Linux, macOS, or Windows
Install from PyPI
The recommended way to install ghnova is from PyPI:
# Create a virtual environment (recommended with uv)
uv venv --python 3.10
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install ghnova
Optional Dependencies
For development or specific features:
# Development dependencies (testing, linting, etc.)
uv pip install ghnova[dev]
# Documentation dependencies
uv pip install ghnova[docs]
# All dependencies
uv pip install ghnova[dev,docs]
Install from Source
For the latest development version:
git clone git@github.com:isaac-cf-wong/ghnova.git
cd ghnova
# Create a virtual environment (recommended with uv)
uv venv --python 3.10
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install .
Development Installation
To set up for development:
git clone git@github.com:isaac-cf-wong/ghnova.git
cd ghnova
# Create a virtual environment (recommended with uv)
uv venv --python 3.10
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install ".[dev]"
# Install the commitlint dependencies
npm install
# Install pre-commit hooks
pre-commit install
pre-commit install --hook-type commit-msg
Verify Installation
Check that ghnova is installed correctly:
ghnova --help
python -c "import ghnova; print(ghnova.__version__)"
Release Schedule
Releases follow a fixed schedule: every Tuesday at 00:00 UTC, unless an emergent bugfix is required. This ensures predictable updates while allowing flexibility for critical issues. Users can view upcoming changes in the draft release on the GitHub Releases page.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For questions, issues, or contributions, please:
- Check the documentation
- Open an issue on GitHub
- Join our discussions
Changelog
See Release Notes for version history.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghnova-0.3.0.tar.gz.
File metadata
- Download URL: ghnova-0.3.0.tar.gz
- Upload date:
- Size: 70.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32bfc25df162abdaad3020dea933ec5c8db245e0d2231a744ae603a121104206
|
|
| MD5 |
3d35dfc126532f25c640c398689e3c9d
|
|
| BLAKE2b-256 |
5c5c50df033d5d0828341ef5ab436490660b8c9ad2e2a1fff5afb9875d6957b2
|
Provenance
The following attestation bundles were made for ghnova-0.3.0.tar.gz:
Publisher:
create_tag.yml on isaac-cf-wong/ghnova
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghnova-0.3.0.tar.gz -
Subject digest:
32bfc25df162abdaad3020dea933ec5c8db245e0d2231a744ae603a121104206 - Sigstore transparency entry: 883580552
- Sigstore integration time:
-
Permalink:
isaac-cf-wong/ghnova@81fee5892f9ab491cd7d701b607803d2bf29bcfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/isaac-cf-wong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
create_tag.yml@81fee5892f9ab491cd7d701b607803d2bf29bcfe -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file ghnova-0.3.0-py3-none-any.whl.
File metadata
- Download URL: ghnova-0.3.0-py3-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07cc681b69fd2c38ce4df5a8623c1537659e777ca110c95870c4bd1c09a3b0cd
|
|
| MD5 |
ab13ed2803b63c25b59f7fad17e96407
|
|
| BLAKE2b-256 |
c97e45fc5583b793052a6f75b46dcb5e7c1b17ce8a549ffc3787afcee438cd73
|
Provenance
The following attestation bundles were made for ghnova-0.3.0-py3-none-any.whl:
Publisher:
create_tag.yml on isaac-cf-wong/ghnova
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ghnova-0.3.0-py3-none-any.whl -
Subject digest:
07cc681b69fd2c38ce4df5a8623c1537659e777ca110c95870c4bd1c09a3b0cd - Sigstore transparency entry: 883580627
- Sigstore integration time:
-
Permalink:
isaac-cf-wong/ghnova@81fee5892f9ab491cd7d701b607803d2bf29bcfe -
Branch / Tag:
refs/heads/main - Owner: https://github.com/isaac-cf-wong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
create_tag.yml@81fee5892f9ab491cd7d701b607803d2bf29bcfe -
Trigger Event:
workflow_dispatch
-
Statement type: