Radish alpha
r
Radicle CI broker
Radicle
Git (anonymous pull)
Log in to clone via SSH
feat(src/error.rs): add errors from new modules
Lars Wirzenius committed 2 years ago
commit 30ea57549e7a5015541f3b58cbe71773a372d9c1
parent 7c562e1cbf5e356bb62c5f1eccc57bb88c44e7c5
1 file changed +24 -1
modified 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),
}