From 874095b689101fc11690e0bd3b9562ac81b0fa09 Mon Sep 17 00:00:00 2001 From: openhands Date: Sat, 21 Mar 2026 14:15:00 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20review=20feedback=20=E2=80=94=20drop=20i?= =?UTF-8?q?nflated=20X-Total-Count=20for=20PRs,=20remove=20redundant=20cur?= =?UTF-8?q?l,=20use=20textContent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove X-Total-Count header override for prs_merged_total: header counts all closed PRs (including unmerged/rejected), inflating the dashboard metric. Keep the jq-filtered count from the 50-item page instead. - Remove redundant first curl in backlog_count that discards its response. - Use textContent/createElement instead of innerHTML for project names. Co-Authored-By: Claude Opus 4.6 (1M context) --- site/collect-metrics.sh | 13 +------------ site/dashboard.html | 5 ++++- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/site/collect-metrics.sh b/site/collect-metrics.sh index f03699b..facc8af 100644 --- a/site/collect-metrics.sh +++ b/site/collect-metrics.sh @@ -66,14 +66,6 @@ collect_project_metrics() { jq --arg since "$MONTH_AGO" '[.[] | select(.merged and .merged_at >= $since)] | length' 2>/dev/null || echo 0) fi - # Use the X-Total-Count header for total merged count - local total_header - total_header=$(curl -sf -I -H "Authorization: token ${CODEBERG_TOKEN}" \ - "${api_base}/pulls?state=closed&limit=1" 2>/dev/null | grep -i 'x-total-count' | tr -d '\r' | awk '{print $2}' || echo "") - if [ -n "$total_header" ]; then - prs_merged_total="$total_header" - fi - # Issues closed local issues_closed_week=0 issues_closed_month=0 local closed_issues @@ -96,10 +88,7 @@ collect_project_metrics() { # Open issues by label local backlog_count in_progress_count blocked_count - backlog_count=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ - "${api_base}/issues?state=open&labels=backlog&type=issues&limit=1" -o /dev/null \ - -w '' 2>/dev/null; \ - curl -sf -I -H "Authorization: token ${CODEBERG_TOKEN}" \ + backlog_count=$(curl -sf -I -H "Authorization: token ${CODEBERG_TOKEN}" \ "${api_base}/issues?state=open&labels=backlog&type=issues&limit=1" 2>/dev/null | \ grep -i 'x-total-count' | tr -d '\r' | awk '{print $2}' || echo "0") in_progress_count=$(curl -sf -H "Authorization: token ${CODEBERG_TOKEN}" \ diff --git a/site/dashboard.html b/site/dashboard.html index 019e367..5e78ec2 100644 --- a/site/dashboard.html +++ b/site/dashboard.html @@ -420,7 +420,10 @@ data.projects.forEach(function (p) { var card = el('div', 'project'); var nameDiv = el('div', 'name'); - nameDiv.innerHTML = '' + p.name + ''; + var nameLink = document.createElement('a'); + nameLink.href = 'https://codeberg.org/' + p.repo; + nameLink.textContent = p.name; + nameDiv.appendChild(nameLink); card.appendChild(nameDiv); var metricsDiv = el('div', 'metrics');