import { github } from "@/lib/oauth"; import { generateState } from "arctic"; import type { APIRoute } from "astro"; import { badRequest } from "@/lib/api"; export const GET: APIRoute = async ({ cookies, redirect }) => { if (!process.env.GITHUB_CLIENT_ID || !process.env.GITHUB_CLIENT_SECRET) { return badRequest("GitHub OAuth is not configured (set GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET)"); } const state = generateState(); const url = await github.createAuthorizationURL(state, []); cookies.set("github_oauth_state", state, { path: "/", secure: import.meta.env.PROD, httpOnly: true, maxAge: 60 * 10, sameSite: "lax", }); return redirect(url.toString()); };