- Does this package work with Laravel 10+ and PHP 8.1+?
- The package lacks explicit Laravel 10 or PHP 8.1+ support. The 2024 minor release mentions 'some minor API changes,' which could conflict with Laravel’s newer features like named arguments or attributes. Test thoroughly before integrating, especially if using Bitbucket, as its API may introduce type or compatibility issues.
- How do I install and use this in a Laravel project?
- Run `composer require digitalkaoz/issues` to install. Initialize trackers like `$github = new GithubTracker($token)` or `$bitbucket = new BitbucketTracker($username, $password)`. Use methods like `getProject()` or `findProjects()` to fetch data. For CLI searches, use the `bin/issues` command with flags like `-u` for tokens or `-h` for hostnames.
- Is this package actively maintained? Should I use it for production?
- The package is effectively abandoned, with the last major update in 2014 and only minor changes since. While it may work, undocumented 'minor API changes' risk breaking Laravel integrations. For production, consider alternatives like `atlassian-php-sdk` or `php-bitbucket-api` to avoid compatibility risks.
- Can I use this to sync Bitbucket issues with Laravel’s database?
- Yes, but with caveats. The package supports Bitbucket, but lacks Laravel-specific features like queue jobs, caching, or database migrations. You’ll need to manually wrap API calls in Laravel’s `Cache::remember()` or queue them using `SyncBitbucketIssuesJob`. Test pagination and rate limits (60 requests/10 mins for Bitbucket).
- Does this package handle Bitbucket webhooks or OAuth2 refresh tokens?
- No, the package does not support Bitbucket webhooks or OAuth2 refresh tokens. For webhooks, pair it with `spatie/laravel-webhooks` to validate/sign payloads. For OAuth2, use Laravel’s `Http` client or `league/oauth2-client` instead of the package’s credentials system, as it lacks secure storage or token rotation.
- How do I search across multiple trackers programmatically?
- Use the `findProjects()` method to locate repositories (e.g., `$tracker->findProjects('digitalkaoz/*')`), then fetch issues via `$project->getIssues()`. For cross-tracker searches, loop through initialized trackers (Github, GitLab, etc.) and aggregate results. The CLI (`bin/issues search`) also supports this with flags like `-u` for tokens and `-d` for hostnames.
- Are there Laravel-specific optimizations, like caching or queues?
- No, the package is generic PHP and lacks Laravel integrations. To optimize, manually cache responses with `Cache::remember()` or queue API calls using Laravel’s queues. For example, wrap Bitbucket calls in a job like `SyncBitbucketIssuesJob` to avoid blocking requests.
- What are the risks of using this for Bitbucket in Laravel?
- Risks include silent failures due to outdated HTTP libraries, undocumented API changes, and lack of Laravel-friendly error handling. Bitbucket’s rate limits (60 requests/10 mins) may cause throttling without retry logic. Test thoroughly, especially if using Laravel’s `Http` client or OAuth2 libraries, as the package may conflict with modern PHP features.
- Can I extend or fork this to add Laravel features?
- Yes, but expect challenges. The package’s architecture isn’t Laravel-optimized, so you’d need to refactor trackers (e.g., `BitbucketTracker`) to use Laravel’s `Http` client, `Cache`, or `Queue`. Start by creating an interface (e.g., `BitbucketRepository`) to isolate changes and use Laravel’s service container for dependency injection.
- What alternatives exist for Laravel + Bitbucket/Jira integrations?
- For Bitbucket, consider `php-bitbucket-api` (modern PHP SDK) or `atlassian-php-sdk` (supports Bitbucket and Jira). For Jira, the Atlassian SDK is the official choice. These alternatives are actively maintained, support OAuth2, and integrate better with Laravel’s ecosystem (e.g., queues, caching). Evaluate based on your need for webhooks, rate limiting, or Laravel-specific features.