Files
williammarch.xyz/app/api/gitea/[...path]/route.ts
2026-04-02 20:38:56 +01:00

35 lines
791 B
TypeScript

import { NextRequest, NextResponse } from 'next/server';
const GITEA_URL = process.env.GITEA_URL;
if (!GITEA_URL) {
throw new Error('GITEA_URL is not set (check .env.local)');
}
export async function GET(
req: NextRequest,
ctx: { params: Promise<{ path: string[] }> }
) {
const { path } = await ctx.params;
const search = req.nextUrl.search || '';
const url = `${GITEA_URL}/api/v1/${path.join('/')}${search}`;
const upstream = await fetch(url, {
method: 'GET',
headers: {
Accept: 'application/json',
},
cache: 'no-store',
});
const body = await upstream.text();
return new NextResponse(body, {
status: upstream.status,
headers: {
'Content-Type':
upstream.headers.get('content-type') || 'application/json',
},
});
}