From d3d67cd350e9ba97a797d14b89a7be9278cbdcc3 Mon Sep 17 00:00:00 2001 From: Jaime Alfaro Salazar <62313620+jialfaro@users.noreply.github.com> Date: Sat, 5 Sep 2026 18:25:45 -0500 Subject: [PATCH] Fix #397: GET /api/v1/tasks: clamp limit to match siblings; negative limit returns 500 with raw DB error --- crates/gl/src/issue.rs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/crates/gl/src/issue.rs b/crates/gl/src/issue.rs index 57bd6944b..b19985aa6 100644 --- a/crates/gl/src/issue.rs +++ b/crates/gl/src/issue.rs @@ -221,12 +221,14 @@ async fn cmd_list(repo: String, node: String, dir: Option) -> Result<() let client = signed_client(&node, dir.as_deref()); let path = format!("/api/v1/repos/{owner}/{name}/issues"); - let resp: Value = client - .get_authed(&path) - .await? - .json() - .await - .context("failed to list issues")?; + let resp_raw = client.get_authed(&path).await?; + let status = resp_raw.status(); + let resp: Value = resp_raw.json().await.context("failed to list issues")?; + + if !status.is_success() { + let msg = resp["message"].as_str().unwrap_or("unknown error"); + anyhow::bail!("list failed ({status}): {msg}"); + } let issues = resp["issues"].as_array().cloned().unwrap_or_default(); @@ -353,14 +355,18 @@ async fn cmd_issue_comments( let (owner, name) = resolve_repo(&repo, &node, dir.as_deref()).await?; let client = signed_client(&node, dir.as_deref()); - let resp: Value = client + let resp_raw = client .get_authed(&format!( "/api/v1/repos/{owner}/{name}/issues/{id}/comments" )) - .await? - .json() - .await - .context("invalid JSON")?; + .await?; + let status = resp_raw.status(); + let resp: Value = resp_raw.json().await.context("invalid JSON")?; + + if !status.is_success() { + let msg = resp["message"].as_str().unwrap_or("unknown error"); + anyhow::bail!("comments list failed ({status}): {msg}"); + } let comments = resp["comments"].as_array().cloned().unwrap_or_default(); if comments.is_empty() {