// use crate as actor; use actix::prelude::*; impl Handler for actor::RepoActor { type Result = (); #[tracing::instrument(name = "RepoActor::AdvanceMainTo", skip_all, fields(repo = %self.repo_details, commit = ?msg))] fn handle( &mut self, msg: actor::messages::AdvanceMain, ctx: &mut Self::Context, ) -> Self::Result { let Some(repo_config) = self.repo_details.repo_config.clone() else { tracing::warn!("No config loaded"); return; }; let Some(open_repository) = &self.open_repository else { return; }; let repo_details = self.repo_details.clone(); let addr = ctx.address(); let message_token = self.message_token; match actor::branch::advance_main( msg.unwrap(), &repo_details, &repo_config, &**open_repository, ) { Err(err) => { tracing::warn!("advance main: {err}"); } Ok(_) => match repo_config.source() { git_next_config::RepoConfigSource::Repo => { actor::do_send(addr, actor::messages::LoadConfigFromRepo, self.log.as_ref()); } git_next_config::RepoConfigSource::Server => { actor::do_send( addr, actor::messages::ValidateRepo::new(message_token), self.log.as_ref(), ); } }, } } }