fix: retain MR source observations and notification actors

This commit is contained in:
2026-10-15 19:13:03 +09:00
parent 84ea23c2e6
commit a31f002a0a
6 changed files with 404 additions and 6 deletions
+12
View File
@@ -693,6 +693,17 @@ impl MergeRequestStore {
pub fn open_merge_request(
&self,
i: OpenMergeRequest,
) -> Result<MergeRequest, MergeRequestError> {
self.open_merge_request_with_evidence(i, |_| Ok(()))
}
/// Retain caller-owned evidence atomically with creation. The callback runs
/// after the MR and Ticket relation exist, under this store's transaction;
/// it must use that transaction rather than reacquire the store connection.
pub fn open_merge_request_with_evidence(
&self,
i: OpenMergeRequest,
retain_evidence: impl FnOnce(&Transaction<'_>) -> Result<(), MergeRequestError>,
) -> Result<MergeRequest, MergeRequestError> {
bounded_body("summary", &i.summary)?;
for (n, v) in [
@@ -756,6 +767,7 @@ impl MergeRequestStore {
None,
)?
}
retain_evidence(&t)?;
t.commit()?;
drop(c);
self.get_by_id(&i.auth.workspace_id, &merge_request_id)