Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/danielroe/roe.dev. This is the code and content for my personal website, built in Nuxt. roe.dev
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839/** * List releases from danielroe/slides for the talk-editor slides datalist. */import { createError, defineEventHandler, useRuntimeConfig } from 'nuxt/server'
import { requireAdminSession } from '../../utils/admin/oauth'import { createGitHub, SLIDES_REPO } from '../../utils/github'
export default defineEventHandler(async event => { await requireAdminSession(event)
const config = useRuntimeConfig() if (!config.github.token) { throw createError({ status: 503, statusText: 'GitHub token not configured (NUXT_GITHUB_TOKEN). Slides dropdown will be empty.', }) }
try { const releases = await Array.fromAsync(createGitHub(config.github.token).releases.list(SLIDES_REPO, { perPage: 100 }))
return releases .filter(r => !r.isDraft) .map(r => ({ tag: r.tag, name: r.name || r.tag, publishedAt: r.publishedAt?.toISOString() ?? null, })) } catch (err) { console.error('[admin] github-releases fetch failed:', err) throw createError({ status: 502, statusText: `GitHub API error: ${err instanceof Error ? err.message : String(err)}`, }) }})