summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/lib/github.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/console/app/src/lib/github.ts')
-rw-r--r--packages/console/app/src/lib/github.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/packages/console/app/src/lib/github.ts b/packages/console/app/src/lib/github.ts
new file mode 100644
index 000000000..49b926463
--- /dev/null
+++ b/packages/console/app/src/lib/github.ts
@@ -0,0 +1,28 @@
+import { query } from "@solidjs/router"
+
+export const github = query(async () => {
+ "use server"
+ try {
+ const [meta, releases, contributors] = await Promise.all([
+ fetch("https://api.github.com/repos/sst/opencode").then((res) => res.json()),
+ fetch("https://api.github.com/repos/sst/opencode/releases").then((res) => res.json()),
+ fetch("https://api.github.com/repos/sst/opencode/contributors?per_page=1"),
+ ])
+ const [release] = releases
+ const contributorCount = Number.parseInt(
+ contributors.headers
+ .get("Link")!
+ .match(/&page=(\d+)>; rel="last"/)!
+ .at(1)!,
+ )
+ return {
+ stars: meta.stargazers_count,
+ release: {
+ name: release.name,
+ url: release.html_url,
+ },
+ contributors: contributorCount,
+ }
+ } catch {}
+ return undefined
+}, "github")