diff --git a/src/server/actors/repo/mod.rs b/src/server/actors/repo/mod.rs index 6684a59..59f4af2 100644 --- a/src/server/actors/repo/mod.rs +++ b/src/server/actors/repo/mod.rs @@ -122,3 +122,18 @@ impl Handler for RepoActor { self.webhook_id.replace(msg.0); } } + +#[derive(Message)] +#[rtype(result = "()")] +pub struct AdvanceMainTo(pub forge::Commit); +impl Handler for RepoActor { + type Result = (); + fn handle(&mut self, msg: AdvanceMainTo, ctx: &mut Self::Context) -> Self::Result { + let repo_details = self.details.clone(); + let addr = ctx.address(); + let net = self.net.clone(); + branch::advance_main(msg.0, repo_details, addr, net) + .into_actor(self) + .wait(ctx); + } +}