Proxy GitHub API yang menggabungkan beberapa PAT untuk berbagi anggaran rate-limit, menyimpan respons baca dalam memori, dan meneruskan mutasi dengan autentikasi klien sendiri. Dirancang untuk setup multi-agen (OpenAB, OpenClaw, coding agent kustom) yang berbagi repo yang sama.

ghpool adalah proxy GitHub API yang dirancang untuk setup multi-agen di mana beberapa coding agent (bot OpenAB, worker OpenClaw, agent kustom) berbagi repo yang sama dan menghabiskan rate limit per-token GitHub.
Ia melakukan tiga hal:
Authorization klien sendiri dan diteruskan dengan token tersebut, sehingga log audit GitHub tetap menunjukkan agen mana yang melakukan tulisTemplate ini mendeploy ghpool sebagai layanan internal-only:
Layanan saudara terhubung menggunakan variabel lingkungan ini (auto-ekspos):
| Variabel | Nilai |
|---|---|
GHPOOL_HOSTNAME | hostname kontainer (mis. ghpool.zeabur.internal) |
GHPOOL_BASE_URL | URL dasar lengkap (mis. http://ghpool.zeabur.internal:8080) |
Arahkan coding agent atau gh CLI Anda ke ghpool dengan mengatur URL dasar GitHub API:
export GITHUB_API_URL=${GHPOOL_BASE_URL}
export GITHUB_GRAPHQL_URL=${GHPOOL_BASE_URL}/graphql
Untuk tulis yang membutuhkan atribusi autentikasi, agen tetap menggunakan GH_TOKEN / GITHUB_TOKEN sendiri seperti biasa — ghpool hanya mencegat jalur jaringan, bukan kredensial.
Template menginisialisasi pool dengan satu PAT (GHPOOL_PAT_DEFAULT). Untuk menambah lebih:
GHPOOL_PAT_<ID> (mis. GHPOOL_PAT_BOT_CLAUDE, GHPOOL_PAT_BOT_CODEX) dengan PAT sebagai nilainya — <ID> menjadi nama identitas yang dilaporkan oleh /statsVariabel lingkungan apa pun yang cocok dengan awalan GHPOOL_PAT_* ditemukan secara otomatis.
| Path | Tujuan |
|---|---|
GET /<github-api-path> | GET proxy GitHub REST API (digabungkan + di-cache) |
POST /graphql | GraphQL — query digabungkan+di-cache, mutasi diteruskan dengan auth klien |
GET /healthz | Pemeriksaan kesehatan |
GET /stats | Anggaran pool, rasio hit cache, statistik per-identitas |
GHPOOL_ALLOWED_OWNERS ditegakkan: permintaan ke org/pengguna mana pun yang tidak ada di daftar ini mengembalikan 403, sehingga PAT yang bocor hanya mengekspos repo yang Anda daftarkan secara eksplisitAuthorization dari klien (tanpa auth = 401), sehingga proxy tidak dapat digunakan sebagai gateway tulis anonimghpool adalah binary Rust tunggal (image distroless) — sangat ringan. Memori didominasi oleh cache dalam-memori (maks 10000 entri secara default). Jika Anda mem-proxy volume permintaan yang sangat tinggi, tingkatkan RAM sesuai.