Dax Raad 2 месяцев назад
Родитель
Сommit
73513612d4

+ 1 - 0
packages/console/app/src/lib/github.ts

@@ -26,6 +26,7 @@ export const github = query(async () => {
       release: {
         name: release.name,
         url: release.html_url,
+        tag_name: release.tag_name,
       },
       contributors: contributorCount,
     }

+ 3 - 16
packages/console/app/src/routes/download/index.tsx

@@ -8,20 +8,7 @@ import { Faq } from "~/component/faq"
 import desktopAppIcon from "../../asset/lander/opencode-desktop-icon.png"
 import { Legal } from "~/component/legal"
 import { config } from "~/config"
-
-const getLatestRelease = query(async () => {
-  "use server"
-  const response = await fetch("https://api.github.com/repos/sst/opencode/releases/latest", {
-    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",
-    },
-  })
-
-  if (!response.ok) return null
-  const data = await response.json()
-  return data.tag_name as string
-}, "latest-release")
+import { github } from "~/lib/github"
 
 function CopyStatus() {
   return (
@@ -33,11 +20,11 @@ function CopyStatus() {
 }
 
 export default function Download() {
-  const release = createAsync(() => getLatestRelease(), {
+  const githubData = createAsync(() => github(), {
     deferStream: true,
   })
   const download = () => {
-    const version = release()
+    const version = githubData()?.release.tag_name
     if (!version) return null
     return `https://github.com/sst/opencode/releases/download/${version}`
   }