Hide unconfigured reports and add empty states to the reports tab
What does this MR do and why?
The reports tab now shows a nav item only for reports the head pipeline
has, replaces the status line with three Pajamas empty states via a new
ReportsEmptyState, and hides the sidebar when no nav item would show.
The tab also navigates to the first configured report and redirects
deep links to reports that are not configured.
The tab switches from its own poller to the shared mergeRequestData
mixin, which owns one store and one poller serving both the reports
tab and the tab count badge.
A new configured_reports.js holds the license compliance and code
quality checks, called by both the reports tab and the tab count
badge so they agree. Both read fields on the merge request widget
store. This fixes a badge bug: it counted license compliance
whenever the project had the license_scanning feature, rather
than when a report existed. Like the merge request widget, the
store sets report paths in its constructor, so a report appearing
during polling needs a reload.
References
Screenshots or screen recordings
How to set up and validate locally
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.


