diff --git a/src/dashboard.rs b/src/dashboard.rs index 48edda3..94daf6b 100644 --- a/src/dashboard.rs +++ b/src/dashboard.rs @@ -15,6 +15,13 @@ use crate::types::PrStatus; const PAGE_SIZE: u64 = 50; +fn escape_html(s: &str) -> String { + s.replace('&', "&") + .replace('<', "<") + .replace('>', ">") + .replace('"', """) +} + #[derive(serde::Deserialize)] struct DashboardQuery { page: Option, @@ -141,7 +148,7 @@ pub async fn dashboard(db: Db, query: Query) -> Result{}{}{}{}{}{}{}", pr.repo_owner, pr.repo_name, pr.pr_number, pr.pr_number, pr.status, pr.status, - pr.title, pr.author, approved, + escape_html(&pr.title), escape_html(&pr.author), escape_html(approved), pr.repo_owner, pr.repo_name, pr.head_sha, short_sha, time_col, ));