1234567891011121314151617181920212223242526272829303132333435 |
- import { Octokit } from '@octokit/rest'
- import { redirect } from 'next/navigation'
- const octokit = new Octokit()
- export default async function Download() {
- const res = await fetch('https://api.github.com/repos/jmorganca/ollama/releases', { next: { revalidate: 60 } })
- const data = await res.json()
- if (data.length === 0) {
- return new Response('not found', { status: 404 })
- }
- const latest = data[0]
- const assets = latest.assets || []
- if (assets.length === 0) {
- return new Response('not found', { status: 404 })
- }
- // todo: get the correct asset for the current arch/os
- const asset = assets.find(
- (a: any) => a.name.toLowerCase().includes('darwin') && a.name.toLowerCase().includes('.zip')
- )
- if (!asset) {
- return new Response('not found', { status: 404 })
- }
- if (asset) {
- redirect(asset.browser_download_url)
- }
- return null
- }
|