feat: add github repo stats helper

This commit is contained in:
codebanditssss 2026-06-03 21:57:38 +05:30
parent c74fefbaf5
commit fbaa6d17a5
1 changed files with 58 additions and 0 deletions

View File

@ -0,0 +1,58 @@
export interface GitHubRepoStats {
stars: number;
forks: number;
openIssues: number;
watchers: number;
}
const FALLBACK_STATS: GitHubRepoStats = {
stars: 6295,
forks: 853,
openIssues: 622,
watchers: 21,
};
export async function getGitHubRepoStats(): Promise<GitHubRepoStats> {
try {
const response = await fetch(
"https://api.github.com/repos/ComposioHQ/agent-orchestrator",
{
next: { revalidate: 3600 },
headers: {
Accept: "application/vnd.github+json",
"User-Agent": "ao-website",
},
},
);
if (!response.ok) {
return FALLBACK_STATS;
}
const data = (await response.json()) as {
stargazers_count?: number;
forks_count?: number;
open_issues_count?: number;
subscribers_count?: number;
};
return {
stars: data.stargazers_count ?? FALLBACK_STATS.stars,
forks: data.forks_count ?? FALLBACK_STATS.forks,
openIssues: data.open_issues_count ?? FALLBACK_STATS.openIssues,
watchers: data.subscribers_count ?? FALLBACK_STATS.watchers,
};
} catch {
return FALLBACK_STATS;
}
}
export function formatCompactNumber(value: number): string {
if (value >= 1_000_000) {
return `${(value / 1_000_000).toFixed(1)}m`;
}
if (value >= 1_000) {
return `${(value / 1_000).toFixed(1)}k`;
}
return String(value);
}