Download packages/console/app/src/lib/github.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 1.29 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/console/app/src/lib/github.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/console/app/src/lib/github.ts
-
curl -L -o github.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/console/app/src/lib/github.ts
1.29 kB
| import { query } from "@solidjs/router" | |
| import { config } from "~/config" | |
| export const github = query(async () => { | |
| "use server" | |
| const headers = { | |
| "User-Agent": | |
| "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36", | |
| } | |
| const apiBaseUrl = config.github.repoUrl.replace("https://github.com/", "https://api.github.com/repos/") | |
| try { | |
| const [meta, releases, contributors] = await Promise.all([ | |
| fetch(apiBaseUrl, { headers }).then((res) => res.json()), | |
| fetch(`${apiBaseUrl}/releases`, { headers }).then((res) => res.json()), | |
| fetch(`${apiBaseUrl}/contributors?per_page=1`, { headers }), | |
| ]) | |
| if (!Array.isArray(releases) || releases.length === 0) { | |
| return undefined | |
| } | |
| const [release] = releases | |
| const linkHeader = contributors.headers.get("Link") | |
| const contributorCount = linkHeader | |
| ? Number.parseInt(linkHeader.match(/&page=(\d+)>; rel="last"/)?.at(1) ?? "0") | |
| : 0 | |
| return { | |
| stars: meta.stargazers_count, | |
| release: { | |
| name: release.name, | |
| url: release.html_url, | |
| tag_name: release.tag_name, | |
| }, | |
| contributors: contributorCount, | |
| } | |
| } catch (e) { | |
| console.error(e) | |
| } | |
| return undefined | |
| }, "github") | |