- How do I install Laravel AI Changelog and get it working with my project?
- Run `composer require amjitk/laravel-ai-changelog --dev` to install the package, then publish its config with `php artisan vendor:publish --tag=ai-changelog-config`. Add your Gemini API key to `.env` under `GEMINI_API_KEY`, and you’re ready to generate changelogs via `php artisan changelog:ai:generate`.
- Which Laravel versions does this package support?
- The package is designed for Laravel 8.x and 9.x, with potential compatibility for 10.x. Always check the package’s documentation or GitHub for the latest version support, as newer Laravel features may require updates.
- Can I customize the AI-generated changelog format or categories?
- Yes, the package allows customization via the published config file (`config/ai-changelog.php`). You can modify prompts, section labels (e.g., Features, Fixes), and Markdown formatting. For deeper customization, you may need to extend the package’s service provider.
- How does the package handle API rate limits or failures with the Gemini API?
- The package relies on `hosseinhezami/laravel-gemini`, which should include basic error handling for API failures. For production use, implement retries, caching, or fallback mechanisms (e.g., manual changelog generation) in your CI/CD pipeline to handle rate limits or outages.
- Is it safe to use this package in CI/CD? Will it overwrite my existing CHANGELOG.md?
- No, the package is non-destructive—it prepends new changelog entries to your existing `CHANGELOG.md`. It’s safe for CI/CD pipelines, but ensure your workflow includes a step to commit the updated file back to your repository.
- Can I generate changelogs for a specific range, like a feature branch vs. staging?
- Yes, use the `--from` and `--to` flags with branch names, commit SHAs, or tags. For example, `php artisan changelog:ai:generate --from=feature/login --to=staging` generates changelog entries for changes in `feature/login` compared to `staging`.
- What if my Git history contains sensitive data? Will it be sent to the AI API?
- The package processes commit messages and diffs locally before sending them to the AI API. However, ensure your commit messages don’t include sensitive data (e.g., passwords, tokens) to comply with privacy policies like GDPR. Review the AI provider’s data handling practices for additional safeguards.
- Are there alternatives to this package? What are the trade-offs?
- Alternatives include manual changelog tools like `keepachangelog` or Laravel-specific packages like `laravel-release`. The trade-off with AI-based tools like this one is reduced manual effort but increased dependency on external APIs (cost, latency, and potential accuracy issues). Manual tools offer more control but require ongoing maintenance.
- How do I handle API costs if I generate changelogs frequently in CI?
- Monitor your AI API usage closely, as frequent changelog generation can incur costs. Implement caching (e.g., store generated changelogs for a release) or restrict generation to specific branches/tags (e.g., only on `main` or `release/*`). Consider using a budget alert system for your API provider.
- Can I use a different AI provider instead of Gemini?
- The package is built on top of `hosseinhezami/laravel-gemini`, which abstracts the AI provider. If you want to switch providers, you’d need to modify the underlying package or create a custom wrapper to support your preferred API (e.g., OpenAI, Azure AI). Check the `laravel-gemini` package for extensibility options.