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/routes/repo/actions-log.ts

18 lines808 bytesCodeBlame
1import { data } from "react-router";
2
3import type { Route } from "./+types/actions-log";
4import { actions } from "../../lib/services.server";
5import { getViewer } from "../../lib/session.server";
6
7/** A job's log after `?after=`, for the run page to fetch as it grows. */
8export async function loader({ params, context, request }: Route.LoaderArgs) {
9 const after = Number(new URL(request.url).searchParams.get("after") ?? 0);
10 const log = await actions.logs(
11 { namespace: params.owner, name: params.repo },
12 getViewer(context),
13 params.job,
14 Number.isFinite(after) && after > 0 ? after : 0,
15 );
16 if (!log.ok) throw data({ error: log.error.message }, { status: log.error.code === "not_found" ? 404 : 400 });
17 return Response.json(log.value, { headers: { "cache-control": "no-store" } });
18}