python-gitea
A Python package for interacting with the Gitea API. It provides a simple, intuitive interface to access Gitea repositories, users, organizations, issues, and more, enabling seamless integration with Gitea instances for automation, data retrieval, and management tasks.
Features
- Full API Coverage: Repositories, users, organizations, issues, pull requests, comments, labels, milestones, notifications, and projects.
- Easy Authentication: Token-based authentication, with multiple saved accounts and a default-account fallback.
- Asynchronous Support: Built with
async/awaitfor non-blocking operations alongside the synchronous client. - Type Hints: Full type annotations for better IDE support and code reliability.
- Command-Line Interface: Interact with the Gitea API directly from the terminal for quick, scriptable operations without writing code.
- Comprehensive Documentation: Detailed guides and a generated API reference.
Quick Start
1. Install
uv venv --python 3.13
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install python-gitea
2. Configure an account
gitea-cli config add --name my_account --token YOUR_API_TOKEN --base-url https://gitea.example.com
3. Use the CLI
# List issues of a repository
gitea-cli issue list --owner my-org --repository my-repo
# Get a user
gitea-cli user get --username my-org
4. Use the Python API
from gitea.client.gitea import Gitea
with Gitea(token="YOUR_API_TOKEN", base_url="https://gitea.example.com") as client:
issues, _ = client.issue.list_issues(owner="my-org", repository="my-repo")
For details, see the Quick Start, Configuration, and Python API guides in the documentation.
Installation
We recommend using uv to manage virtual environments for installing
python-gitea.
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.12 or higher
- Operating System: Linux, macOS, or Windows
Install from PyPI
The recommended way to install python-gitea is from PyPI:
# Create a virtual environment (recommended with uv)
uv venv --python 3.12
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install python-gitea
Optional Dependencies
For development or specific features:
# Development dependencies (testing, linting, etc.)
uv pip install python-gitea[dev]
# Documentation dependencies
uv pip install python-gitea[docs]
# All dependencies
uv pip install python-gitea[dev,docs]
Install from Source
For the latest development version:
git clone git@github.com:isaac-cf-wong/python-gitea.git
cd python-gitea
# Create a virtual environment (recommended with uv)
uv venv --python 3.12
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/python-gitea.git
cd python-gitea
# Create a virtual environment (recommended with uv)
uv venv --python 3.12
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv sync --group dev
# Install pre-commit hooks
uv run prek install
Verify Installation
Check that python-gitea is installed correctly:
gitea-cli --help
python -c "import gitea; print(gitea.__version__)"
Documentation
Full documentation is available at https://isaac-cf-wong.github.io/python-gitea.
Contributing
Contributions are welcome! Please read the Contributing Guide before opening a pull request.
Testing
Run the test suite:
uv run pytest
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.
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 python_gitea-0.8.0.tar.gz.
File metadata
- Download URL: python_gitea-0.8.0.tar.gz
- Upload date:
- Size: 218.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e1aa48a6163dd96c86db7c527d086ffaf15c551cb47249e6efed8df8e6e0f0
|
|
| MD5 |
9ec127ce323778bdaf4dde81e4a33e99
|
|
| BLAKE2b-256 |
929071a0d94bd5347246fd46f16962d5496b6abb8a5d3aa7437905e2bd3736ec
|
File details
Details for the file python_gitea-0.8.0-py3-none-any.whl.
File metadata
- Download URL: python_gitea-0.8.0-py3-none-any.whl
- Upload date:
- Size: 101.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0875fbf93fbfb2ebecd81dd765e1afdb5a19aff3277ebb5059919dde5e569d89
|
|
| MD5 |
649484fe3c08caaa5d74a53f4bb7565f
|
|
| BLAKE2b-256 |
cc1597484b9bcbb54e15ecd47aa9c5ea83495456147d999b0510ec2c20aba322
|