// use actix::prelude::*; use git_next_forge as forge; use git_next_git as git; use tracing::{info, warn}; use crate::{MessageToken, ValidateRepo}; use super::AdvanceMainTo; pub async fn check_next( next: git::Commit, addr: Addr, forge: forge::Forge, message_token: MessageToken, ) { // get the status - pass, fail, pending (all others map to fail, e.g. error) let status = forge.commit_status(&next).await; info!(?status, "Checking next branch"); match status { git::forge::commit::Status::Pass => { addr.do_send(AdvanceMainTo(next)); } git::forge::commit::Status::Pending => { tokio::time::sleep(tokio::time::Duration::from_secs(10)).await; addr.do_send(ValidateRepo { message_token }); } git::forge::commit::Status::Fail => { warn!("Checks have failed"); } } }