digitalkaoz/issues
PHP wrapper to search and fetch issues across multiple trackers (GitHub, GitLab, Jira, Bitbucket). Includes a CLI for cross-tracker searching and a simple API to find projects and list issues programmatically.
ReturnTypeWillChange deprecations).config or env to toggle between old/new Bitbucket implementations during testing.BitbucketTracker class that uses Laravel’s Http client and league/oauth2-client instead of the package’s internals.atlassian-php-sdk for Bitbucket/Jira or php-bitbucket-api for a modern PHP alternative.spatie/laravel-webhooks)?Http client to identify type/feature conflicts (e.g., ArrayObject vs. array).BitbucketRepository) for easy swapping.config/services.php and cache responses with Illuminate\Support\Facades\Cache::remember.BitbucketIssueCreated) for downstream services.SyncBitbucketIssuesJob) to avoid timeouts.BitbucketIssue with repository_id foreign key).ArrayObject deprecations).Trackers\Bitbucket namespace with interfaces (e.g., BitbucketRepository) and a concrete adapter.interface BitbucketRepository {
public function createIssue(array $data): BitbucketIssue;
public function listIssues(string $repository): LengthAwarePaginator;
}
class BitbucketTracker implements BitbucketRepository { ... }
Http client or Guzzle 7+.use Illuminate\Support\Facades\Http;
$response = Http::withToken($token)
->post('https://api.bitbucket.org/2.0/repositories/'.$repo.'/issues', $data);
league/oauth2-client.encrypter or sanctum.ProblemException or custom exceptions (e.g., BitbucketApiException).Http::retry(3, 100)->get($url);
spatie/laravel-webhooks to validate and process Bitbucket payloads.spatie/laravel-webhooks.spatie/laravel-gitlab) may reduce long-term maintenance.Illuminate\Pagination\LengthAwarePaginator)..env variables, queue configuration).429 Too Many Requests) require familiarity with both Laravel and Bitbucket’s rate limits.tap and dump for debugging API responsesHow can I help you explore Laravel packages today?