diff options
author | Lars Wirzenius <liw@liw.fi> | 2024-02-02 17:28:57 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2024-02-02 17:43:44 +0200 |
commit | 30ea57549e7a5015541f3b58cbe71773a372d9c1 (patch) | |
tree | 8cd0c18b7f4dfad76bb723274d171e93e7f83c1d | |
parent | 7c562e1cbf5e356bb62c5f1eccc57bb88c44e7c5 (diff) | |
download | radicle-ci-broker-30ea57549e7a5015541f3b58cbe71773a372d9c1.tar.gz |
feat(src/error.rs): add errors from new modules
Signed-off-by: Lars Wirzenius <liw@liw.fi>
-rw-r--r-- | src/error.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/error.rs b/src/error.rs index 3ed517c..9a49fd2 100644 --- a/src/error.rs +++ b/src/error.rs @@ -2,10 +2,17 @@ use std::path::PathBuf; -use crate::{config::ConfigError, msg::MessageError}; +use radicle::prelude::RepoId; + +use crate::{ + adapter::AdapterError, + config::ConfigError, + msg::{MessageError, Request}, +}; /// All possible errors from the CI broker messages. #[derive(Debug, thiserror::Error)] +#[allow(clippy::large_enum_variant)] pub enum BrokerError { /// A configuration related error. #[error(transparent)] @@ -15,6 +22,10 @@ pub enum BrokerError { #[error(transparent)] Message(#[from] MessageError), + /// An adapter related error. + #[error(transparent)] + Adapter(#[from] AdapterError), + /// Error from an node event subscriber. #[error(transparent)] NodeEvent(#[from] crate::event::NodeEventError), @@ -34,4 +45,16 @@ pub enum BrokerError { /// Default adapter is not in list of adapters. #[error("default adapter is not in list of adapters")] UnknownDefaultAdapter(String), + + /// No adapter set for repository and no default adapter set. + #[error("could not determine what adapter to use for repository {0}")] + NoAdapter(RepoId), + + /// Request is not a trigger message. + #[error("tried to execute CI based on a message that is not a trigger one: {0:#?}")] + NotTrigger(Request), + + /// Could not convert repository ID from string. + #[error("failed to understand repository id {0:?}")] + BadRepoId(String, #[source] radicle::identity::IdError), } |