flagon-io/g1t

public

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

g1t/apps/web/app/lib/github.server.ts

21 lines845 bytesCodeBlame
1import { env } from "cloudflare:workers";
2
3import { githubAppClient, githubSignInClient } from "@g1t/contracts";
4
5/** Signing in with GitHub, kept by the identity service. */
6export const githubSignIn = githubSignInClient(env.IDENTITY);
7/** g1t's GitHub App: installations, imports and mirrors, kept by integrations. */
8export const githubApp = githubAppClient(env.INTEGRATIONS);
9
10/**
11 * Whether this g1t offers signing in with GitHub. False when no app is
12 * configured, or identity cannot say: the button is then left out.
13 */
14export async function githubSignInEnabled(): Promise<boolean> {
15 return githubSignIn.enabled().catch(() => false);
16}
17
18/** Where GitHub returns after sign-in: registered on the app, exactly. */
19export function callbackUrl(request: Request): string {
20 return `${new URL(request.url).origin}/auth/github/callback`;
21}