import type { GiteaServiceWidget } from "@/lib/config/schema"; import type { ServiceStat } from "@/lib/types/service-result"; import { serviceBaseUrl } from "./base-url"; export async function collectGitea(widget: GiteaServiceWidget): Promise<{ stats: ServiceStat[] }> { const base = serviceBaseUrl(widget); const response = await fetch(`${base}/api/v1/users/${widget.username}/repos?limit=1`, { headers: { Authorization: `token ${widget.apiToken}` }, signal: AbortSignal.timeout(5_000), }); if (!response.ok) { throw new Error(`Gitea API returned ${response.status}`); } const count = response.headers.get("X-Total-Count") ?? "0"; return { stats: [{ label: "Repos", value: count }] }; }