import { createFileRoute } from "@tanstack/react-router"; import { requireSignedIn } from "~/lib/route-guards"; import { createOwnerRunnerRegistration, deleteOwnerRunner, listOwnerRunnersFn } from "~/fns/runners"; import { useAction } from "~/hooks/use-action"; import { PageContainer } from "~/ui/PageContainer"; import { RegisterRunnerPanel, RunnerList } from "~/components/runners/RunnerPanels"; import { Heading } from "~/ui/Heading"; export const Route = createFileRoute("/orgs/$org/runners")({ beforeLoad: ({ context, location }) => { requireSignedIn({ context, location }); }, loader: ({ params }) => listOwnerRunnersFn({ data: { owner: params.org } }), component: OrgRunnersPage, }); function OrgRunnersPage() { const { owner, runners, serverUrl } = Route.useLoaderData(); const params = Route.useParams(); const register = useAction(createOwnerRunnerRegistration, { invalidate: false }); const remove = useAction(deleteOwnerRunner); return ( {owner} runners

Owner-wide self-hosted runners take jobs from every repository {owner} owns. They never run fork pull request jobs; register a runner on a single repository for that.

register.run({ data: { owner: params.org, labels, isolation } })} /> remove.run({ data: { owner: params.org, id } })} />
); }