feat: when no action to take, wait 10 seconds then restart

As a stop-gap until we have a working webhook server, this will poll the
repo for updates to it's status.

Closes kemitix/git-next#22
This commit is contained in:
Paul Campbell 2024-04-11 18:30:36 +01:00
parent bb4d171174
commit c9d52a5b7f
3 changed files with 10 additions and 5 deletions

View file

@ -133,8 +133,7 @@ impl Handler<StartMonitoring> for RepoActor {
} else if self.webhook_id.is_none() {
webhook::register(repo_details, addr, net)
.into_actor(self)
.wait(ctx)
// TODO: (#18) watch for changes on dev
.wait(ctx);
}
}
}

View file

@ -3,6 +3,7 @@ use gix::trace::warn;
use tracing::info;
use crate::server::{
actors::repo::ValidateRepo,
config::{self, ForgeType},
forge,
};
@ -28,12 +29,13 @@ pub async fn check_next(
}
Status::Pending => {
info!("Checks are pending");
} // TODO: (#22) wait and try again OR can webhook tell us when it's done, in
// which case we can do nothing here and wait for the webhook to trigger
}
Status::Fail => {
warn!("Checks have failed");
}
}
tokio::time::sleep(std::time::Duration::from_secs(10)).await;
addr.do_send(ValidateRepo);
}
#[derive(Debug)]

View file

@ -1,5 +1,7 @@
use std::ops::Deref;
use crate::server::actors::repo::ValidateRepo;
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct WebhookId(String);
impl WebhookId {
@ -27,8 +29,10 @@ pub async fn unregister(
pub async fn register(
_repo_details: crate::server::config::RepoDetails,
_addr: actix::prelude::Addr<super::RepoActor>,
addr: actix::prelude::Addr<super::RepoActor>,
_net: kxio::network::Network,
) {
// TODO: (#15) register webhook - on success send webhook id to RepoActor
tokio::time::sleep(std::time::Duration::from_secs(10)).await;
addr.do_send(ValidateRepo);
}