Add merge requests widget to personal homepage - only "Assigned to you" tab

What does this MR do and why?

This adds a merge requests widget to the personal homepage, behind a disabled-by-default feature flag, so users can see merge requests that need their attention without leaving the homepage.

  • Adds feature flag homepage_merge_requests_widget (type wip, default_enabled: false, milestone 19.5, group group::activation)
  • Pushes the flag from both RootController#index and DashboardController#home, since both render the root/index view and both / and /dashboard/home need to show the widget
  • Adds a widget card in the homepage right-hand column, above Quick access, with a heading, a tab bar, and a list of merge request rows
  • Ships the "Assigned to you" tab only; a "Review requested" tab follows in a separate MR
  • Each row shows the direct parent group and project name, the merge request title (single line, truncated), and a metadata line with pipeline status, approvals, unresolved threads, and the last-updated timestamp
  • Shows 4 rows collapsed, with a "Show more" toggle revealing up to 8 (no toggle when there are 4 or fewer); beyond 8, users go to the merge requests dashboard via the "All merge requests" link
  • Handles loading, empty, and error states
  • Fetches rows and the total count in a single GraphQL query
  • Reuses existing components: BaseWidget, GlTabs, CiIcon, ApprovalCount, DiscussionsBadge, TimeAgoTooltip, TooltipOnTruncate, GlSkeletonLoader
  • Tracks clicks with the existing user_follows_link_on_homepage internal event, using a new label Merge requests widget so this widget's clicks can be told apart from the existing count cards

Design is specified in Figma and is the single source of truth for this issue: https://www.figma.com/design/hPe0yrIe65SUQQLkaclkmy/Personal-homepage-near-term-improvements?node-id=1-2

Screenshots or screen recordings

Before After

not present

Screenshot 2026-09-23 at 10.52.48.png

Screenshot 2026-09-23 at 11.02.10.png

How to set up and validate locally

  1. In a rails console, enable the flag for your user: Feature.enable(:homepage_merge_requests_widget, User.find_by_username('root'))
  2. Visit / and /dashboard/home
  3. Confirm the merge requests widget appears on both routes
  4. Assign yourself more than 4 open merge requests and confirm the "Show more" toggle appears and reveals up to 8 rows
  5. Run yarn jest spec/frontend/homepage (339 tests)
  6. Run bin/rspec spec/requests/dashboard/homepage_spec.rb (6 examples)

References

Relate to !256602 (merged)

Relate to #627724

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist.

Edited by Marco Tomasi

Merge request reports

Loading
Loading