Async-native Python library for bulk operations on self-hosted GitLab
Project description
glabflow
The fastest GitLab client for AI agents and high-volume automation, written in Python.
- ⚡ 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)
- 🌍 102 GraphQL operations (27 queries + 75 mutations) — DataLoader batching, query caching, schema introspection codegen
- 📦 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 —
glcovers auth, listing, git ops, audits, analytics, and more (see CLI below) - 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_errordecorator for custom exception handling per-call
CLI (Command Line Interface)
glabflow ships a gl CLI for bulk GitLab operations — install with uv add glabflow[cli] or pip install glabflow[cli].
| Command | Purpose |
|---|---|
gl auth |
Login, profiles, credential resolution |
gl list |
List repositories, users, or groups |
gl git clone|pull|fetch |
Bulk git operations across projects |
gl users |
Privilege checks, GraphQL-based activity/contribution log |
gl mr |
List merge requests, list commits in a merge request |
gl pipelines |
List, logs, stats, live-watch, CI failure-rate analysis |
gl audit |
Compliance dashboards, public/stale repo audits |
gl analytics |
DORA metrics, velocity, code churn, timelogs |
gl spamcheck / gl anomaly |
Spam user detection, access anomaly detection |
gl upgrade |
Pre-upgrade checklist, version diff |
gl migrate |
Migrate python-gitlab code to glabflow automatically |
gl runner |
Register and start a local GitLab Runner |
Run gl --help or any subcommand with --help for full usage; see the CLI Reference for details.
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 | 102 ops + DataLoader + schema codegen | 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.
Project details
Release history Release notifications | RSS feed
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 glabflow-0.1.0a9.tar.gz.
File metadata
- Download URL: glabflow-0.1.0a9.tar.gz
- Upload date:
- Size: 393.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f50b66387e7571cd1c7fc8c59f8016d2a350ac5f92dfe9725614ce102aac7e3a
|
|
| MD5 |
a0575af8661a226a803973fa9a5d9ffb
|
|
| BLAKE2b-256 |
7de29146f7516408acc2b2ba9449bbc54c592a3434b55248b3a8feb590b289c8
|
File details
Details for the file glabflow-0.1.0a9-py3-none-any.whl.
File metadata
- Download URL: glabflow-0.1.0a9-py3-none-any.whl
- Upload date:
- Size: 559.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c413e16c0257c94dea293b13866b161a98dee58f7b3061c3a71b67dd2587f721
|
|
| MD5 |
cd9d4e77eb79882fbf5261de427667d0
|
|
| BLAKE2b-256 |
ca91e0e3c32d946c8c20b637d6e9df696d557c476e11796588a8ffcea7463ba2
|