Loading
Extract merge request filter arguments into a concern
What does this MR do and why?
Moves the merge request GraphQL filter arguments out of Resolvers::MergeRequestsResolver into a shared concern, so the upcoming mergeRequestsCsvExport mutation (!261924 (merged)) can accept exactly the same filters as the list. No behavior or schema change.
Merge request stack
These merge requests fix #583992 together. Merge them in this order; same-numbered MRs are independent.
| Order | MR | What | Depends on |
|---|---|---|---|
| 1 | !262241 (merged) (this MR) | Extract the merge request filter arguments into a shared concern (no schema change) | None |
| 1 | !262242 (merged) | Accept the subscribed filter as a string in IssuableFinder |
None |
| 2 | !261924 (merged) | Add the mergeRequestsCsvExport GraphQL mutation |
!262241 (merged), !262242 (merged) |
| 3 | !261946 (merged) | Switch the MR list export to the mutation behind merge_requests_csv_export_graphql |
!261924 (merged) |
| 4 | !261956 | Remove the REST export and the flag after the rollout in #633656 (not before 2026-11-16) | !261946 (merged) |
Details
MergeRequests::SharedFilterArgumentsholds the filter arguments, theaccept_assignee/accept_author/accept_reviewerhelpers, and finder param preparation (blob path and closed range validation, wildcard and assignee rewrites). It mirrorsWorkItems::SharedFilterArguments.- The dynamic
negated doblock becomes an explicitTypes::MergeRequests::NegatedMergeRequestFilterInputTypethat keeps the GraphQL nameMergeRequestsResolverNegatedParams.NegatableArgumentsnames the type after the class it runs in, so a shared concern would otherwise create a second type. - The EE
approverargument moves fromEE::Resolvers::MergeRequestsResolverintoEE::MergeRequests::SharedFilterArguments, wired in withinclude_mod. - Schema:
doc/api/graphql/reference/_index.mdis unchanged. The introspection JSON diff only reorders arguments (equal additions and deletions). - Specs: 1280 examples across the MR resolver specs and project, group and EE MR GraphQL request specs pass. The resolver unit spec drops
prepare_assignee_username_params, which moved intoprepare_finder_params.
References
- Related to #583992
- Split out of !261924 (merged) per review.
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.
Edited by Kai Armstrong