import { NextResponse } from 'next/server' const FORGEJO_URL = 'https://forgejo.riotpiao.com' const REPO = 'rock/riotpiao.com' export async function GET() { const token = process.env.FORGEJO_TOKEN if (!token) { return NextResponse.json( { error: 'FORGEJO_TOKEN not configured' }, { status: 500 } ) } try { const response = await fetch( `${FORGEJO_URL}/api/v1/repos/${REPO}/actions/runs?limit=1`, { headers: { Authorization: `token ${token}`, Accept: 'application/json', }, cache: 'no-store', } ) if (!response.ok) { throw new Error(`Forgejo API error: ${response.status}`) } const data = await response.json() const latestRun = data.workflow_runs?.[0] if (!latestRun) { return NextResponse.json({ status: 'unknown', message: 'No runs found', }) } return NextResponse.json({ status: latestRun.status, conclusion: latestRun.conclusion, title: latestRun.display_title || latestRun.head_branch, branch: latestRun.head_branch, url: latestRun.html_url, updatedAt: latestRun.completed_at || latestRun.started_at, }) } catch (error) { console.error('CI status fetch error:', error) return NextResponse.json( { error: 'Failed to fetch CI status', status: 'error' }, { status: 500 } ) } }