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.
TypeScript
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152/** * List releases from danielroe/slides for the talk-editor slides datalist. */import { requireAdminSession } from '../../utils/admin/oauth'
interface GitHubRelease { tag_name: string name: string | null published_at: string | null draft: boolean}
export default defineEventHandler(async event => { await requireAdminSession(event)
const config = useRuntimeConfig(event) if (!config.github.token) { throw createError({ statusCode: 503, statusMessage: 'GitHub token not configured (NUXT_GITHUB_TOKEN). Slides dropdown will be empty.', }) }
try { const releases = await $fetch<GitHubRelease[]>( 'https://api.github.com/repos/danielroe/slides/releases?per_page=100', { headers: { 'Authorization': `token ${config.github.token}`, 'User-Agent': 'roe.dev-admin', 'Accept': 'application/vnd.github+json', }, }, )
return releases .filter(r => !r.draft) .map(r => ({ tag: r.tag_name, name: r.name || r.tag_name, publishedAt: r.published_at, })) } catch (err) { console.error('[admin] github-releases fetch failed:', err) throw createError({ statusCode: 502, statusMessage: `GitHub API error: ${err instanceof Error ? err.message : String(err)}`, }) }})