Starting impl Sentry and tracing

This commit is contained in:
2026-06-09 20:58:38 +00:00
parent 3984a7d3ba
commit 39c2afa0a7
10 changed files with 1456 additions and 84 deletions
+8 -40
View File
@@ -1,5 +1,6 @@
use serde::Deserialize;
use std::time::Duration;
use tracing::{error, info};
use crate::{
env::EnvConfig,
@@ -22,44 +23,6 @@ pub struct ReviewItem {
pub message: String,
}
/// Map a filename to a markdown language identifier for syntax highlighting.
fn lang_from_filename(filename: &str) -> &str {
match std::path::Path::new(filename)
.extension()
.and_then(|e| e.to_str())
.unwrap_or("")
{
"rs" => "rust",
"py" => "python",
"js" | "mjs" => "javascript",
"ts" => "typescript",
"jsx" => "jsx",
"tsx" => "tsx",
"go" => "go",
"java" => "java",
"kt" | "kts" => "kotlin",
"scala" => "scala",
"c" | "h" => "c",
"cpp" | "cc" | "cxx" | "hpp" | "hxx" => "cpp",
"rb" => "ruby",
"php" => "php",
"swift" => "swift",
"sh" | "bash" | "zsh" => "bash",
"sql" => "sql",
"html" | "htm" => "html",
"css" => "css",
"scss" | "sass" => "scss",
"json" => "json",
"yaml" | "yml" => "yaml",
"xml" => "xml",
"toml" => "toml",
"md" | "mdx" => "markdown",
"dockerfile" | "Dockerfile" => "dockerfile",
"Makefile" => "makefile",
_ => "",
}
}
pub struct Bot {
config: EnvConfig,
gitea_api: GiteaAPI,
@@ -90,6 +53,8 @@ impl Bot {
&self,
mut rx: tokio::sync::mpsc::Receiver<WebhookType>,
) -> anyhow::Result<()> {
info!("Bot started");
while let Some(wb) = rx.recv().await {
self.exec(wb).await;
}
@@ -110,8 +75,11 @@ impl Bot {
.await;
match exec_result {
Ok(_) => println!("Task completed"),
Err(err) => println!("{}", err),
Ok(_) => info!("Task completed"),
Err(err) => {
error!("{}", err);
sentry_anyhow::capture_anyhow(&err);
}
}
}
}