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
app/controllers/autocomplete_controller.rb
)
Backend (- Added
special_users
action that filters users by access level - Added
filter_special_users
method to check project/group membership - Filters for maintainer-level access and above
app/assets/javascripts/gfm_auto_complete.js
)
Frontend (- Added
@@
trigger configuration - Added
setupSpecialMembers
method - Added visual badge to indicate maintainer/admin status
- Configured backend filtering for the new trigger
config/routes.rb
)
Routes (- Added
GET /-/autocomplete/special_users
endpoint
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