gentle/bitbucket-api
PHP Bitbucket API wrapper (PHP 5.4+) using cURL and Buzz. Provides a simple client for interacting with Bitbucket endpoints, with full documentation and optional PHPUnit test suite. MIT licensed.
Pros:
Users, Repositories, Issues), aligning with Laravel’s service-layer and repository patterns. This allows for clean separation of concerns and dependency injection.Cons:
| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Deprecated Dependencies | High | Replace Buzz with Guzzle via a compatibility adapter or fork the package. |
| PHP Version Mismatch | Medium | Use rector/rector to upgrade PHP syntax or create a polyfill layer. |
| Archived Maintenance | High | Monitor Bitbucket API changes and maintain a fork if critical updates are needed. |
| Authentication Complexity | Medium | Abstract auth logic into a Laravel Service Provider for reuse. |
| Webhook Integration | High | Build a separate Laravel package for webhook handling using spatie/laravel-webhooks. |
| Rate Limiting | Medium | Implement exponential backoff in Laravel’s HTTP client middleware. |
atlassian-php-sdk).changesets/likes endpoint is missing—will this block critical features?$this->app->singleton(Bitbucket::class, function ($app) {
$client = new Bitbucket([
'auth' => [
'type' => 'oauth',
'consumer_key' => config('services.bitbucket.key'),
'consumer_secret' => config('services.bitbucket.secret'),
],
]);
return $client;
});
bus:dispatch).RepositoryCreated, IssueAssigned).| Component | Compatibility Notes |
|---|---|
| Laravel 8/9/10 | Works with minor adjustments (PHP 8.x compatibility fixes). |
| Guzzle | Replace Buzz with Guzzle via a compatibility layer or fork. |
| Bitbucket API | Supports API 2.0; API 1.0 endpoints are deprecated but may still work. |
| OAuth 2.0 | Compatible with Laravel Passport/Sanctum for token management. |
| Webhooks | Not supported; requires custom Laravel endpoint (e.g., POST /bitbucket/webhook). |
Repositories, Issues).RepositoryPushed).telescope for debugging complex requests.spatie/fork) for Bitbucket API failures.Client) to avoid overhead.How can I help you explore Laravel packages today?