Skip to content

Refactor tracking of MR title, desc, and draft status

What does this MR do?

When I initially added the tracking logic to MergeRequest::UpdateService (!53077 (merged) and !53551 (merged)) I hadn't been able to track down where we were triggering additional update events, which was resetting ActiveModel::Dirty#changes (etc) pushing me to cobble together holding state of incoming changes. This was a fine approach, but it avoided tackling the complexity of this service head-on. In returning to the code today, I see now how MergeRequest#mark_as_unchecked is triggering an update on state change (thanks to the state machine behind that..) and can sequence the code more appropriately and, critically, more flexibly for deliverables (#15332 (closed)) I have in this release.

Edited by Kerri Miller

Merge request reports