Hide CI runs from unauthenticated users
Assisted-by: Claude Sonnet 4.6 via Claude Code
change wslnuvukwzoovzuwywywnmyrzxuslksp
commit 590e00c26c5a42bf5f27548d00bf04017161db24
author Alpha Chen <alpha@kejadlen.dev>
date
parent smqrzsrw
diff --git a/quire-server/src/quire/web/handlers/repo.rs b/quire-server/src/quire/web/handlers/repo.rs
index 5142dda..ba365c9 100644
--- a/quire-server/src/quire/web/handlers/repo.rs
+++ b/quire-server/src/quire/web/handlers/repo.rs
@@ -27,29 +27,30 @@ pub async fn repo_home(
 
     let q = quire.clone();
     let rn = repo_name.clone();
-    let recent_runs: Vec<RunListRow> = match tokio::task::spawn_blocking(move || {
-        db::load_runs(&q, &rn)
-    })
-    .await
-    {
-        Ok(Ok(runs)) => runs
-            .into_iter()
-            .take(5)
-            .map(|r| RunListRow {
-                id: r.id,
-                outcome: r.outcome,
-                sha: r.sha,
-                ref_name: r.ref_name,
-                created_at: r.created_at,
-                dispatched_at: r.dispatched_at,
-                resolved_at: r.resolved_at,
-            })
-            .collect(),
-        Ok(Err(e)) => {
-            tracing::warn!(repo = %repo, error = &e as &(dyn std::error::Error + 'static), "failed to load runs for home");
-            vec![]
+    let is_authed = auth.is_authenticated();
+    let recent_runs: Vec<RunListRow> = if is_authed {
+        match tokio::task::spawn_blocking(move || db::load_runs(&q, &rn)).await {
+            Ok(Ok(runs)) => runs
+                .into_iter()
+                .take(5)
+                .map(|r| RunListRow {
+                    id: r.id,
+                    outcome: r.outcome,
+                    sha: r.sha,
+                    ref_name: r.ref_name,
+                    created_at: r.created_at,
+                    dispatched_at: r.dispatched_at,
+                    resolved_at: r.resolved_at,
+                })
+                .collect(),
+            Ok(Err(e)) => {
+                tracing::warn!(repo = %repo, error = &e as &(dyn std::error::Error + 'static), "failed to load runs for home");
+                vec![]
+            }
+            Err(_) => vec![],
         }
-        Err(_) => vec![],
+    } else {
+        vec![]
     };
 
     let rd = repo_display.clone();
@@ -59,7 +60,7 @@ pub async fn repo_home(
             .unwrap_or_default();
 
     let tmpl = RepoHomeTemplate {
-        sections: nav_sections(&repo_display, "overview", auth.is_authenticated()),
+        sections: nav_sections(&repo_display, "overview", is_authed),
         repo: repo_display,
         crumbs: None,
         head,