This commit is contained in:
+10
-3
@@ -1,6 +1,5 @@
|
||||
use crate::{
|
||||
gitea::{GiteaAPI, WebhookType},
|
||||
open_router::OpenRouterClient,
|
||||
gitea::{GiteaAPI, WebhookType}, metrics, open_router::OpenRouterClient,
|
||||
};
|
||||
use serde::Deserialize;
|
||||
use std::{collections::HashSet, sync::Arc};
|
||||
@@ -87,10 +86,12 @@ impl Bot {
|
||||
info!(queued = rx.len(), active = tasks.len(), "Webhook received");
|
||||
let permit = sem.clone().acquire_owned().await?;
|
||||
let self_clone = self.clone();
|
||||
metrics::increment_task_active();
|
||||
|
||||
tasks.spawn(async move {
|
||||
self_clone.exec(wb).await;
|
||||
drop(permit);
|
||||
metrics::decrement_task_active();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -102,6 +103,8 @@ impl Bot {
|
||||
|
||||
#[instrument(skip(self, webhook), fields(repo, pr))]
|
||||
pub async fn exec(&self, webhook: WebhookType) {
|
||||
let event_type_str = webhook.event_type_str();
|
||||
|
||||
match &webhook {
|
||||
WebhookType::Review(p) => {
|
||||
tracing::Span::current().record("repo", &p.repository.full_name);
|
||||
@@ -121,8 +124,12 @@ impl Bot {
|
||||
.await;
|
||||
|
||||
match exec_result {
|
||||
Ok(_) => info!("Task completed"),
|
||||
Ok(_) => {
|
||||
metrics::task_completed(event_type_str);
|
||||
info!("Task completed");
|
||||
}
|
||||
Err(err) => {
|
||||
metrics::task_failed(event_type_str);
|
||||
error!(%err, "Task error");
|
||||
sentry_anyhow::capture_anyhow(&err);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user