[go: up one dir, main page]

Draft: Adds status mapping to update lifecycle mutation

What does this MR do and why?

This is a draft implementation only with the GraphQL interface right now.

This change adds a new feature to help manage work item lifecycles when statuses are being removed. It introduces a "status mapping" capability that allows users to specify which replacement status should be used when an old status is removed from a lifecycle.

The implementation adds a new input type called StatusMappingInput that captures the relationship between an old status (being removed) and a new status (the replacement). This mapping is then made available as an optional parameter in the lifecycle update functionality through the GraphQL API.

Deleting a status means omitting it in the list of statuses.

A replacement is only needed if the status is in use. The endpoint will error when the status cannot be removed and no status mapping is provided.

References

  1. Provide mapping in lifecycle mutations (#566529 - closed)

Screenshots or screen recordings

Adds this to the arguments of the lifecycle update mutation:

statusMappings: [
  {
    oldStatusId: "gid://gitlab/WorkItems::Statuses::Custom::Status/5"
    newStatusId: "gid://gitlab/WorkItems::Statuses::Custom::Status/2"
  }
]

How to set up and validate locally

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.

Edited by Marc Saleiko

Merge request reports

Loading