Accept the subscribed filter as a string in IssuableFinder

What does this MR do and why?

CSV exports that filter by subscription status ignored the filter. GraphQL passes subscribed as a Symbol, but export workers receive their params as JSON, so the value arrives as a String and IssuableFinder#by_subscribed fell through to returning everything. It now compares the value as a Symbol either way.

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) Extract the merge request filter arguments into a shared concern (no schema change) None
1 !262242 (merged) (this MR) 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
  • Affects any CSV export that passes subscribed through IssuableExportCsvWorker to an IssuableFinder-based finder, including workItemsCsvExport today and the upcoming mergeRequestsCsvExport (!261924 (merged)).
  • Also fixes ?subscribed= on HTML issuable lists: subscribed is an IssuableFinder scalar param that IssuableCollections permits from the query string, where it is always a String, so those lists accepted the filter and ignored it.
  • New MergeRequestsFinder example passes subscribed: 'explicitly_subscribed' and fails without the fix (it returns all three authored MRs instead of the subscribed one).
  • spec/finders/merge_requests_finder_spec.rb and spec/finders/issues_finder_spec.rb: 413 examples, 0 failures.

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