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::SharedFilterArguments holds the filter arguments, the accept_assignee/accept_author/accept_reviewer helpers, and finder param preparation (blob path and closed range validation, wildcard and assignee rewrites). It mirrors WorkItems::SharedFilterArguments.
  • The dynamic negated do block becomes an explicit Types::MergeRequests::NegatedMergeRequestFilterInputType that keeps the GraphQL name MergeRequestsResolverNegatedParams. NegatableArguments names the type after the class it runs in, so a shared concern would otherwise create a second type.
  • The EE approver argument moves from EE::Resolvers::MergeRequestsResolver into EE::MergeRequests::SharedFilterArguments, wired in with include_mod.
  • Schema: doc/api/graphql/reference/_index.md is 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 into prepare_finder_params.

References

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.

🤖 Generated with Claude Code

Edited by Kai Armstrong

Merge request reports

Loading
Loading