Skip to content

Deprecate updating an iteration's attributes via GraphQL

What does this MR do and why?

  1. Deprecates updating an iteration manually through the GraphQL API.
  2. Returns an error if trying to update a deprecated field if the iteration belongs to an automatic iteration cadence. This is not a breaking change as automatic cadences could only be created if the iteration_cadences was enabled. It should not affect the behavior of the legacy iterations feature.

How to set up and validate locally

  1. Make sure the iteration_cadences FF is disabled in the rails console (Feature.disable(:iteration_cadences))
  2. Visit the iterations menu inside the issues side menu of a group.
  3. Test that the legacy iterations feature works as expected. Should be able to update deprecated arguments if the cadence is manual.
  4. Enable the iteration_cadences FF in the rails console (Feature.enable(:iteration_cadences))
  5. Visit http://localhost:3000/groups/gitlab-org/-/cadences
  6. Create an automatic iteration cadence.
  7. You should get an error if trying to update the title, start_date or due_date of any of the generated iterations inside the new automatic iteration cadence using the following query in GraphiQL:
mutation {
  updateIteration(input: {id: "gid://gitlab/Iteration/22", groupPath: "flightjs", title: "deprecated"}) {
    errors
    iteration { title description }
  }
}

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #356069 (closed)

Edited by Mario Celi

Merge request reports

Loading