Swadhin Biswas Feature/ai code reviewer (#79) · 8/16/2026
cfd400d
24 lines · 743 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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());
};