Skip to content

Deprecate updating an iteration's attributes via GraphQL

Mario Celi requested to merge 356069-deprecate-iteraion-updates into master

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