Filter merge requests by target branch
What does this MR do and why?
Related to #463375 (closed)
Feature flag: search_mr_filter_target_branch
This MR adds a the target_branch filter to SearchService for merge requests.
The backend will accept target_branch for = and not[target_branch] for != searches.
The frontend is expected to only send one param, but the backend will allow both. If both are supplied an OR operation is done
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
| Search filter | Screenshot |
|---|---|
| No filter | |
|
|
|
|
|
How to set up and validate locally
- enable elasticsearch for gdk, and index everything using
gitlab:elastic:indexrake task - pick a project
- create two merge requests with the same searchable text
- note the branch names (i used the web IDE editor to create the merge requests easily)
- Enable the feature flag
search_mr_filter_target_branch - search for the text in the project
- verify all results come back
- add the
target_branch=BRANCH_NAMEparam to the URL
- verify only the result from that branch comes back
- add the
not[target_branch]=BRANCH_NAMEparam to the original URL
- http://gdk.test:3000/search?group_id=29&project_id=39&repository_ref=main&scope=merge_requests&search=test¬[target_branch]=tchu-1
- verify the result from that branch does not come back
NOTE: You can repeat the test for group and global search
Edited by Madelein van Niekerk


