cerealkiller97 / filament-bug-reports
A Filament plugin to collect in-app bug reports and push validated ones to GitHub issues.
Package info
github.com/CerealKiller97/filament-bug-reports
pkg:composer/cerealkiller97/filament-bug-reports
Requires
- php: ^8.3
- filament/filament: ^5.0
- illuminate/contracts: ^13.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^3.10
- laravel/pint: ^1.29
- orchestra/testbench: ^11.1
- pestphp/pest: ^4.7
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-livewire: ^4.1
- pestphp/pest-plugin-type-coverage: ^4.0
- phpstan/extension-installer: ^1.4
This package is auto-updated.
Last update: 2026-08-15 15:06:33 UTC
README
Filament Bug Reports
Get instant feedback from the people actually using your app. Collect bug reports from inside your Filament panel, and push the ones you confirm are real straight to GitHub as issues.
Feedback arrives the moment a user hits the problem — not days later through a support email, a Slack thread, or a screenshot with no context. Your users get a Report a bug button in the panel's topbar and a short, plain-language form — no Markdown, no issue templates, no GitHub account. You get a triage table where a single click turns a report into a proper GitHub issue, and the issue's state (open/closed) is mirrored back onto the report automatically.
| Dark | Light |
|---|---|
![]() |
![]() |
How it works
- Anyone in the panel reports a bug. They describe the problem, list the steps that led to it, and optionally attach a screenshot. The report is stamped with the reporter, their role and the running app version — they aren't asked for any of it.
- A manager triages. Reports land in a table only managers can see. Noise gets deleted; the real ones get Mark as real.
- A GitHub issue is created, with the steps and screenshot formatted into the body. The issue number and URL are stored on the report.
- State syncs back. An hourly command checks each linked issue: closed becomes Resolved, reopened flips back to In progress.
Requirements
- PHP 8.3+
- Laravel 13.x
- Filament 5.x
Installation
composer require cerealkiller97/filament-bug-reports
Publish and run the migration:
php artisan vendor:publish --tag=bug-reports-migrations php artisan migrate
Optionally publish the config file:
php artisan vendor:publish --tag=bug-reports-config
Then register the plugin on the panel you want it in:
use CerealKiller97\FilamentBugReports\BugReportsPlugin; public function panel(Panel $panel): Panel { return $panel // ... ->plugin( BugReportsPlugin::make() ->authorizeManagementUsing(fn (User $user): bool => $user->isAdmin()), ); }
That single authorizeManagementUsing call matters: management defaults to nobody. Until you opt someone in, no one can see the report list — though everyone can still file a report.
Finally, point it at a repository with a token that has the repo (or issues:write) scope:
BUG_REPORTS_GITHUB_TOKEN=ghp_xxxxxxxxxxxx BUG_REPORTS_GITHUB_REPOSITORY=acme/platform
See the installation guide for the rest.
Documentation
| Authorization | Who can file a report, and who can triage one. |
| Reporting a bug | The topbar button and the form behind it. |
| The triage table | The stats, the grouping, and marking a report as real. |
| The GitHub issue | What the created issue looks like, and which options GitHub honours. |
| Keeping reports in sync | Mirroring issue state back onto the report. |
| Configuration | Every key in config/bug-reports.php. |
| Translations | Changing the wording. |
Testing
composer test # Pest composer lint # Pint composer analyse # PHPStan composer type-coverage # Pest type coverage (must stay at 100%)
Contributing
Pull requests are welcome — bug fixes, new features, better docs, or just a typo you spotted. See the contributing guide for the workflow, and open the PR even if you're unsure about it.
License
Apache License 2.0. See LICENSE.md.
Proudly made by Stefan Bogdanovic.


