WIP: feat: post webhook to user
All checks were successful
ci/woodpecker/push/cron-docker-builder Pipeline was successful
ci/woodpecker/push/tag-created Pipeline was successful
ci/woodpecker/push/push-next Pipeline was successful

This commit is contained in:
Paul Campbell 2024-07-21 13:44:44 +01:00
parent 8b2deba6de
commit c0d4269d61
2 changed files with 30 additions and 2 deletions

View file

@ -38,7 +38,7 @@ impl From<config::webhook::Push> for Commit {
} }
newtype!(Sha: String, Display, Hash,PartialOrd, Ord: "The unique SHA for a git commit."); newtype!(Sha: String, Display, Hash,PartialOrd, Ord: "The unique SHA for a git commit.");
newtype!(Message: String, Hash, PartialOrd, Ord: "The commit message for a git commit."); newtype!(Message: String, Display, Hash, PartialOrd, Ord: "The commit message for a git commit.");
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct Histories { pub struct Histories {

View file

@ -1,5 +1,7 @@
// //
use actix::prelude::*; use actix::prelude::*;
use derive_more::Deref;
use git_next_git::UserNotification;
use git_next_repo_actor::messages::NotifyUser; use git_next_repo_actor::messages::NotifyUser;
use crate::ServerActor; use crate::ServerActor;
@ -7,7 +9,33 @@ use crate::ServerActor;
impl Handler<NotifyUser> for ServerActor { impl Handler<NotifyUser> for ServerActor {
type Result = (); type Result = ();
fn handle(&mut self, _msg: NotifyUser, _ctx: &mut Self::Context) -> Self::Result { fn handle(&mut self, msg: NotifyUser, _ctx: &mut Self::Context) -> Self::Result {
let _message = match msg.deref() {
UserNotification::CICheckFailed {
forge_alias,
repo_alias,
commit,
} => format!(
"HELP ME!: {forge_alias}/{repo_alias}: CI Checks failed for commit: [{}] {}",commit.sha(), commit.message()
),
UserNotification::RepoConfigLoadFailure {
forge_alias,
repo_alias,
reason,
} => format!("HELP ME!: {forge_alias}/{repo_alias}: Failed to load config: {reason}"),
UserNotification::WebhookRegistration {
forge_alias,
repo_alias,
reason,
} => format!("HELP ME!: {forge_alias}/{repo_alias}: Failed to register webhook: {reason}"),
UserNotification::DevNotBasedOnMain {
forge_alias,
repo_alias,
dev_branch,
main_branch,
} => format!("HELP ME!: {forge_alias}/{repo_alias}: Dev branch '{dev_branch}' is not based on main branch '{main_branch}'"),
};
tracing::info!(_message);
// TODO: (#95) should notify user // TODO: (#95) should notify user
// send post to notification webhook url // send post to notification webhook url
} }