summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2024-02-02 17:28:57 +0200
committerLars Wirzenius <liw@liw.fi>2024-02-02 17:43:44 +0200
commit30ea57549e7a5015541f3b58cbe71773a372d9c1 (patch)
tree8cd0c18b7f4dfad76bb723274d171e93e7f83c1d
parent7c562e1cbf5e356bb62c5f1eccc57bb88c44e7c5 (diff)
downloadradicle-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.rs25
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),
}