import { createServerFn } from "@tanstack/react-start";
import { viewerMiddleware } from "./middleware";
import { limitBrowse } from "~/server/limits";
import { requireRepoAccess } from "~/server/repos";
import { recentBranchPushesFor } from "~/server/branch-pushes";
import { repoRef } from "~/lib/validation";
import type { RecentBranchPush } from "~/server/branch-pushes";
export const recentBranchPushes = createServerFn({ method: "GET" })
.middleware([viewerMiddleware])
.validator(repoRef)
.handler(async ({ data, context }): Promise<RecentBranchPush[]> => {
if (!context.viewer) return [];
await limitBrowse(context.viewer);
const { repo } = await requireRepoAccess(data.owner, data.repo, context.viewer, "read");
return recentBranchPushesFor(repo, context.viewer.id);
});