POC: Add @@ autocomplete for special user types (maintainers/admins)
Summary
This is a proof of concept that demonstrates how to add a new @@ autocomplete trigger that filters users by special types (e.g., maintainers, admins, or other access levels).
How it works
Current @ mention behavior:
-
@triggers autocomplete for all users in the project/group context - Returns up to 10 users based on search query
- Endpoint:
/-/autocomplete/users.json
New @@ mention behavior:
-
@@triggers autocomplete for special users only (maintainers and above) - Filters users by minimum access level (configurable)
- Endpoint:
/-/autocomplete/special_users.json - Visual indicator (badge) shows these are special users
Changes
Backend (app/controllers/autocomplete_controller.rb)
- Added
special_usersaction that filters users by access level - Added
filter_special_usersmethod to check project/group membership - Filters for maintainer-level access and above
Frontend (app/assets/javascripts/gfm_auto_complete.js)
- Added
@@trigger configuration - Added
setupSpecialMembersmethod - Added visual badge to indicate maintainer/admin status
- Configured backend filtering for the new trigger
Routes (config/routes.rb)
- Added
GET /-/autocomplete/special_usersendpoint
Demo
When typing @@ in a comment or description field:
- Autocomplete dropdown appears
- Only shows users with maintainer+ access
- Each user has a "Maintainer+" badge
- Selecting a user inserts
@@username
Future enhancements
This POC could be extended to:
- Support different user filters (e.g.,
@@admins,@@reviewers,@@owners) - Make access level configurable via query params
- Add different visual indicators for different roles
- Support team-specific mentions (e.g.,
@@backend-team)
Testing
To test locally:
- Navigate to any issue/MR comment field
- Type
@@followed by a search term - Verify only maintainers/admins appear in dropdown
- Verify badge appears next to each user