merge-request: harden target update recovery

This commit is contained in:
2026-08-16 21:03:30 +09:00
parent 5ea2792df7
commit 41534b215a
+7 -2
View File
@@ -4046,12 +4046,17 @@ async fn scoped_complete_merge_request(
Ok(outcome) => Ok(Json(outcome)), Ok(outcome) => Ok(Json(outcome)),
Err(error) => { Err(error) => {
if !target_was_already_updated { if !target_was_already_updated {
let _ = repositories.update_merge_target( if let Err(rollback_error) = repositories.update_merge_target(
&mr.repository_id, &mr.repository_id,
selector, selector,
&input.result_commit, &input.result_commit,
&input.target_commit, &input.target_commit,
); ) {
return Err(Error::InvalidInput(format!(
"merge finalization failed after target update and guarded rollback also failed: finalization={error}; rollback={rollback_error:?}"
))
.into());
}
} }
Err(error.into()) Err(error.into())
} }