ezgb: easy git-bug for Python
A standalone Python library for working with git-bug repositories. It lets you list, create, query, and update bugs that are stored as native git objects -- no external database required.
Features
- Fast reads -- bug data is read directly from git objects via pygit2 (libgit2 bindings). Listing uses the git-bug CLI cache when available (~100ms for hundreds of bugs).
- Safe writes -- all mutations go through the
git bugCLI, which keeps Lamport clocks and the operation DAG consistent. - Simple API -- one main class (
GitBugRepo) with plain Python dataclasses for bugs, comments, and identities.
Quick example
from ezgb import GitBugRepo, Status
repo = GitBugRepo('/path/to/repo')
# List open bugs
for bug in repo.list_bugs(status=Status.OPEN):
print(bug.title)
# Create a new bug
bug = repo.create_bug('Login page is broken', 'Steps to reproduce...')
# Add a comment
repo.add_comment(bug.id, 'I can reproduce this on Firefox 130.')
Requirements
- Python 3.10 or later
- pygit2 (libgit2 Python bindings)
git-bugv0.10+ on your$PATH(needed for write operations and fast cached listing)
Installation
git clone https://git.kernel.org/pub/scm/utils/ezgb/ezgb.git
cd ezgb
pip install -e .
Documentation
Full documentation is in the docs/ directory. Build it with:
pip install sphinx sphinx-rtd-theme
make -C docs html
Then open docs/_build/html/index.html in your browser.
Development checks
uv sync --all-groups
./ci.sh
The CI script runs Ruff, ty, mypy, pyright, and pytest. The test suite
includes unit tests (using real git objects in temporary repos via
pygit2) and integration tests that exercise the full stack including the
git-bug binary.
Contributing
See CONTRIBUTING.md for details on submitting patches, coding style, and the Developer Certificate of Origin.
License
GPLv2 or later. See COPYING for the full text.
Metadata
Release files for ezgb 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ezgb-0.2.1.tar.gz | 35.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ezgb-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.2 kB
Release files / ezgb-0.2.1.tar.gz
| Download URL | ezgb-0.2.1.tar.gz |
|---|---|
| Size | 35.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7837ec0606c6c7ad657ab2ccd4295c7f1efaa357b456e7993ff30f454bb7fe4f
|
|
BLAKE2b-256 checksum How to use checksums |
f3d78c1134b28950ea6d8be91aa172717c6091639c59c5dee8f0d95e10e43cb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / ezgb-0.2.1-py3-none-any.whl
| Download URL | ezgb-0.2.1-py3-none-any.whl |
|---|---|
| Size | 25.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7fdb90da0dd350419cef9ad3bbef1033c3161785f89b45a02208d517372394b5
|
|
BLAKE2b-256 checksum How to use checksums |
1338b6ef6fbb9d7d571fa56917e6256fc3c1437dde7cef598c2aeca5967c2238
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for ezgb 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.