Promote reviewState and reviewStates GraphQL arguments to GA
What does this MR do and why?
The reviewState and reviewStates arguments on the mergeRequests GraphQL resolver have been marked as experiment since GitLab 17.0. They are now stable, widely used by the merge request dashboard, and have been in production for several milestones. This MR removes the experiment annotation to promote them to generally available.
The change has three parts:
app/graphql/resolvers/merge_requests_resolver.rb: removesexperiment: { milestone: '17.0' }from thereview_stateandreview_statesargument definitions.doc/api/graphql/reference/_index.md: regenerated reference docs, dropping the experiment badge everywhere these two arguments appear.public/-/graphql/introspection_result.jsonandpublic/-/graphql/introspection_result_no_deprecated.json: regenerated introspection dumps.
GitLab implements experiment status as a synthetic GraphQL deprecation, which is why the two introspection files change asymmetrically. In introspection_result.json, reviewState and reviewStates simply lose their deprecation metadata and the "Status: Experiment" suffix on their descriptions. In introspection_result_no_deprecated.json, the two arguments appear for the first time, because until now they were filtered out of that dump as deprecated. Both are the intended effect of going GA, not accidental changes.
References
- Original commit that introduced the field: a257f2c3
Screenshots or screen recordings
N/A — no UI change.
How to set up and validate locally
- Run
bundle exec rake gitlab:graphql:compile_docsandbundle exec rake gitlab:graphql:generate_all_introspection_schemas, then confirm there is no diff against the docs and introspection files committed in this MR. This is the same check thegraphql-verifyCI job runs via itscheck_docsandcheck_introspection_syncsteps. - Run the resolver spec:
bundle exec rspec spec/graphql/resolvers/merge_requests_resolver_spec.rb
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.