From 3db8e7c2b66bd6efea1457d9a2fcd6c9bbc782a8 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Tue, 5 Aug 2025 12:01:48 -0400 Subject: ci: send stats to posthog --- script/stats.ts | 55 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 17 deletions(-) (limited to 'script') diff --git a/script/stats.ts b/script/stats.ts index bce211855..d5f6c103f 100755 --- a/script/stats.ts +++ b/script/stats.ts @@ -1,5 +1,33 @@ #!/usr/bin/env bun +async function sendToPostHog(event: string, properties: Record) { + const key = process.env["POSTHOG_KEY"] + + if (!key) { + console.warn("POSTHOG_API_KEY not set, skipping PostHog event") + return + } + + const response = await fetch("https://us.i.posthog.com/i/v0/e/", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + distinct_id: "download", + api_key: key, + event, + properties: { + ...properties, + }, + }), + }).catch(() => null) + + if (response && !response.ok) { + console.warn(`PostHog API error: ${response.status}`) + } +} + interface Asset { name: string download_count: number @@ -173,6 +201,16 @@ console.log(`Fetched npm all-time downloads: ${npmDownloads.toLocaleString()}\n` await save(githubTotal, npmDownloads) +await sendToPostHog("download", { + count: githubTotal, + source: "github", +}) + +await sendToPostHog("download", { + count: npmDownloads, + source: "npm", +}) + const totalDownloads = githubTotal + npmDownloads console.log("=".repeat(60)) @@ -181,23 +219,6 @@ console.log(` GitHub: ${githubTotal.toLocaleString()}`) console.log(` npm: ${npmDownloads.toLocaleString()}`) console.log("=".repeat(60)) -console.log("\nDownloads by release:") -console.log("-".repeat(60)) - -stats - .sort((a, b) => b.downloads - a.downloads) - .forEach((release) => { - console.log(`${release.tag.padEnd(15)} ${release.downloads.toLocaleString().padStart(10)} downloads`) - - if (release.assets.length > 1) { - release.assets - .sort((a, b) => b.downloads - a.downloads) - .forEach((asset) => { - console.log(` └─ ${asset.name.padEnd(25)} ${asset.downloads.toLocaleString().padStart(8)}`) - }) - } - }) - console.log("-".repeat(60)) console.log(`GitHub Total: ${githubTotal.toLocaleString()} downloads across ${releases.length} releases`) console.log(`npm Total: ${npmDownloads.toLocaleString()} downloads`) -- cgit v1.2.3