Allows to filter issuables by author using group handles
What does this MR do and why?
Summary of Changes
This change enhances the filtering capabilities for issues, merge requests, and epics by allowing users to filter by group membership. Previously, users could only filter by individual author IDs or usernames, but now they can use a group handle (e.g., '@group/subgroup') to find items authored by any member of that group.
The implementation adds group handle parsing to the author filter, with a safety limit of 100 group members to prevent performance issues with large groups. The code includes proper error handling when groups exceed this limit and ensures that users can only filter by groups they have permission to access.
References
part of #523704 (closed)
How to set up and validate locally
- Create a group (e.g.,
@testgroup/subgroup) - Add 2-3 users as members to this group
- Create several issues in a project where some are authored by group members and others by non-members 3.1 Ensure the test user has access to both the project and the group
- Execute the following GraphQL query
query {
project(fullPath: "project-from-step-3-full-path") {
issues(authorUsername: "@testgroup/subgroup") {
nodes {
title
author {
username
}
}
}
}
}
SQL query
This SQL is generated by the GraphQL query in the test steps. I executed it on gitlab-org group context, also as we have a validation to only allow filtering by groups with less than 100 direct members I also added a LIMIT 100 to the query.
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.