Metadata-Version: 2.4
Name: glabflow
Version: 0.1.0a6
Summary: Async-native Python library for bulk operations on self-hosted GitLab
Keywords: gitlab,async,bulk,devops,aiohttp,free-threaded
License-Expression: LGPL-3.0-only
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Framework :: AsyncIO
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: aiohttp>=3.10
Requires-Dist: aiodns>=3.2
Requires-Dist: cachetools>=5.0
Requires-Dist: graphql-core>=3.2
Requires-Dist: msgspec>=0.18
Requires-Dist: stamina>=24.2
Requires-Dist: tqdm>=4.67.3
Requires-Dist: uvloop>=0.21 ; sys_platform != 'win32'
Requires-Dist: zstandard>=0.23
Requires-Dist: typer>=0.24.1
Requires-Dist: pydantic>=2.13.3
Requires-Dist: gitpython>=3.1.50
Requires-Dist: urllib3>=2.7.0
Requires-Dist: textual>=0.93 ; extra == 'bench'
Requires-Dist: typer[all]>=0.12 ; extra == 'cli'
Requires-Dist: rich>=13.0 ; extra == 'cli'
Requires-Dist: mkdocs>=1.6 ; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.26 ; extra == 'docs'
Requires-Dist: mkdocs-material>=9.5 ; extra == 'docs'
Requires-Dist: python-dateutil>=2.8 ; extra == 'extended'
Requires-Python: >=3.10
Project-URL: Homepage, https://gitlab.com/ranjithraj/glabflow
Project-URL: Repository, https://gitlab.com/ranjithraj/glabflow
Project-URL: Issues, https://gitlab.com/ranjithraj/glabflow/-/issues
Project-URL: Documentation, https://gitlab.com/ranjithraj/glabflow/-/blob/main/README.md
Provides-Extra: bench
Provides-Extra: cli
Provides-Extra: docs
Provides-Extra: extended
Description-Content-Type: text/markdown

# glabflow

**The fastest GitLab client for AI agents and high-volume automation, written in Python.**

[![PyPI](https://img.shields.io/pypi/v/glabflow?color=blue)](https://pypi.org/project/glabflow/)
[![Python](https://img.shields.io/pypi/pyversions/glabflow)](https://pypi.org/project/glabflow/)
[![Downloads](https://img.shields.io/pypi/dm/glabflow)](https://pypi.org/project/glabflow/)
[![License](https://img.shields.io/pypi/l/glabflow)](https://pypi.org/project/glabflow/)

  ![Performance: 1207 users/sec (100x python-gitlab)](https://via.placeholder.com/800x60/1a1a2e/00d4ff?text=1207+users/sec+%28100x+faster%29)

- ⚡ **10-100x faster** than python-gitlab — async-first, connection pooling, keyset pagination
- 🤖 **AI agent tools** — Native tool definitions for agent frameworks
- 📊 **100% REST coverage** — 1,124 operations (vs ~300 in python-gitlab)
- 🌍 **90 GraphQL operations** — DataLoader batching, query caching
- 📦 **Single tool** — replaces python-gitlab, gitlab-cli, and custom scripts

**Install:** `uv add glabflow` or `pip install glabflow` — Python 3.14+

---

## Highlights

- **AI agents** — Native tool definitions for agent frameworks
- **CLI included** — `auth`, `list`, `git clone|pull|fetch`, `audit`, `analytics`
- **Compliance** — SOC2 Type II + ISO 27001 evidence collection, 9 controls mapped
- **Config** — Per-profile timeout, SSL verification, system-level (`/etc/glabflow/config.json`)
- **Auth** — OAuth2, JOB-TOKEN, HTTP Basic, anonymous access
- **Error handling** — `on_http_error` decorator for custom exception handling per-call

---

## Performance

| Mode | Users/sec | vs python-gitlab |
|---|---|---|
| glabflow (GIL off) | **1207** | 100-200x |
| glabflow (GIL on) | **713** | 50-100x |
| python-gitlab | 60-80 | baseline |

---

## glabflow vs python-gitlab

| Feature | glabflow | python-gitlab |
|---|---|---|
| AI agent tools | ✅ First-party | ❌ |
| Speed | 10-100x faster | Sequential |
| REST coverage | 100% (1,124 ops) | ~300 ops |
| GraphQL | 90 ops + DataLoader | Experimental |
| Async | Native | Via `python-gitlab[async]` |

---

## Requirements

- Python 3.14+ (free-threaded recommended)
- `aiohttp>=3.10`, `msgspec>=0.18`, `stamina>=24.2`

**Extras:** `uv add glabflow[cli,extended]` or `pip install glabflow[cli,extended]`

---

## Who's Using glabflow?

Production users include: AI automation platforms, Platform Engineering teams, DevOps teams, compliance tooling, and high-volume GitLab deployments.

*Add your project via PR — we'd love to feature you.*

---

## Community

Built by developers who needed speed. Used by teams processing millions of GitLab API calls daily.

- AI automation platforms building agent-based workflows
- DevOps teams managing hundreds of GitLab instances
- Security teams running compliance audits at scale
- Platforms integrating GitLab into developer workflows

Join us on [GitHub Discussions](https://github.com/anomalyco/glabflow/discussions).
