diff --git a/crates/merge-request/src/lib.rs b/crates/merge-request/src/lib.rs index 22e777594..78a40bbd5 100644 --- a/crates/merge-request/src/lib.rs +++ b/crates/merge-request/src/lib.rs @@ -1655,25 +1655,20 @@ fn current_ticket_revision( workspace_id: &str, ticket_id: &str, ) -> Result, MergeRequestError> { - let event_revision = connection + let event_index = connection .query_row( - "SELECT attribute.value - FROM typed_ticket_events event - JOIN typed_ticket_event_attributes attribute - ON attribute.workspace_id=event.workspace_id - AND attribute.ticket_id=event.ticket_id - AND attribute.event_index=event.event_index - AND attribute.key='event_id' - WHERE event.workspace_id=?1 AND event.ticket_id=?2 - AND event.kind IN ('create','item_edit') - ORDER BY event.event_index DESC + "SELECT event_index + FROM typed_ticket_events + WHERE workspace_id=?1 AND ticket_id=?2 + AND kind IN ('create','item_edit') + ORDER BY event_index DESC LIMIT 1", params![workspace_id, ticket_id], - |row| row.get(0), + |row| row.get::<_, i64>(0), ) .optional()?; - if event_revision.is_some() { - return Ok(event_revision); + if let Some(event_index) = event_index { + return Ok(Some(format!("{ticket_id}:{event_index}"))); } connection .query_row( diff --git a/crates/merge-request/tests/store.rs b/crates/merge-request/tests/store.rs index 0485f11da..b73f656eb 100644 --- a/crates/merge-request/tests/store.rs +++ b/crates/merge-request/tests/store.rs @@ -818,7 +818,7 @@ fn ticket_rescope_requires_fresh_review_before_merge_and_remains_recoverable() { .request_review(RequestMergeRequestReview { merge_request_id: "MR".into(), ticket_id: "T".into(), - ticket_item_revision: "t2".into(), + ticket_item_revision: "T:1".into(), ticket_merge_request_subjects: vec![MergeRequestReviewSubject { merge_request_id: "MR".into(), subject_ref: "subject".into(), @@ -908,7 +908,7 @@ fn ticket_rescope_after_integration_accepts_fresh_requirement_attestation() { .request_review(RequestMergeRequestReview { merge_request_id: "MR".into(), ticket_id: "T".into(), - ticket_item_revision: "t2".into(), + ticket_item_revision: "T:1".into(), ticket_merge_request_subjects: vec![MergeRequestReviewSubject { merge_request_id: "MR".into(), subject_ref: "subject".into(), @@ -936,7 +936,7 @@ fn ticket_rescope_after_integration_accepts_fresh_requirement_attestation() { .complete_ticket(CompleteTicket { ticket_id: "T".into(), operation_id: "ticket-complete-post-rescope".into(), - item_revision: "t2".into(), + item_revision: "T:1".into(), merge_request_ids: vec!["MR".into()], requirement_approval_event_id: requirement_approval.event_id, auth: auth(),