knplabs/github-api
Lightweight, well-tested PHP wrapper for GitHub APIs v3 (REST) and v4 (GraphQL). PSR-17/PSR-18 compatible via HTTPlug, with easy setup using Guzzle, Symfony HttpClient, or other PSR clients. Supports framework integrations (Laravel via graham-campbell/github).
The package offers a well-structured, PSR-compliant HTTP client for GitHub API v3/v4 with lazy-loaded object-oriented design. Its decoupled architecture via HTTPlug ensures flexibility with any PSR-17/PSR-18 compliant HTTP client (e.g., Guzzle, Symfony HttpClient). The MIT license and active maintenance (2 maintainers listed) provide baseline trust. However, the "0 dependents" metric (despite 2200 stars) suggests limited adoption in production ecosystems, and the 2024-11-07 release date appears anomalous (likely a documentation error). Key risks include dependency on GitHub API stability (breaking changes could require package updates) and potential maintenance gaps given the small maintainer team. Critical questions: What is the SLA for GitHub API compatibility updates? How is the package tested against GitHub's edge cases (e.g., rate limits, pagination)? Is there a formal deprecation policy for endpoints?
Stack fit is strong for modern PHP frameworks: Laravel integration is streamlined via graham-campbell/github (which abstracts client configuration), while Symfony/Laminas projects can directly use the core package with PSR-18 clients. Migration requires replacing raw cURL/Guzzle calls with the client's fluent API—existing GitHub interactions would need refactoring to match method signatures (e.g., $client->api('user')->repositories()). Compatibility is ensured for PHP 7.2+ but requires explicit PSR-17/PSR-18 dependencies (e.g., guzzlehttp/guzzle + http-interop/http-factory-guzzle). Sequencing: 1) Install core package + HTTP client, 2) Configure client (e.g.,
How can I help you explore Laravel packages today?