Radish alpha
r
rad:zwTxygwuz5LDGBq255RA2CbNGrz8
Radicle CI broker
Radicle
Git
feat: log enitre filter decision as one message
Lars Wirzenius committed 5 months ago
commit 7d740a9f69f506fd40af2caa54d127e7e4b8f82e
parent 1a329c7
2 files changed +6 -4
modified src/filter.rs
@@ -287,7 +287,7 @@ impl EventFilter {

    pub fn allows(&self, event: &CiEvent) -> bool {
        let dec = self.decide(event);
-
        logger::queueproc_filter_decision(event, self, dec.allowed);
+
        logger::queueproc_filter_decision(event, self, &dec);
        dec.allowed
    }

@@ -296,6 +296,7 @@ impl EventFilter {
    }
}

+
#[derive(Debug, Serialize)]
pub struct Decision {
    filter: &'static str,
    allowed: bool,
modified src/logger.rs
@@ -17,7 +17,7 @@ use crate::{
    ci_event_source::{CiEventSource, CiEventSourceError},
    config::Config,
    db::{QueueId, QueuedCiEvent},
-
    filter::EventFilter,
+
    filter::{Decision, EventFilter},
    msg::{Request, RunId},
    node_event_source::NodeEventSource,
    pages::PageError,
@@ -477,13 +477,14 @@ pub fn queueproc_filter_regex_error(pattern: &str, err: regex::Error) {
        "regular expression syntax error");
}

-
pub fn queueproc_filter_decision(event: &CiEvent, filter: &EventFilter, allowed: bool) {
+
pub fn queueproc_filter_decision(event: &CiEvent, filter: &EventFilter, decision: &Decision) {
+
    let decision = serde_json::to_string(decision).unwrap_or("DECISION AS JSON ERROR".into());
    info!(
        msg_id = ?Id::QueueProcFilterDecision,
        kind = %Kind::FilterDecision,
        ?event,
        ?filter,
-
        ?allowed,
+
        decision,
        "filter decision"
    );
}