import type * as listRunners from '#lib/lexicons/dev/knotless/listRunners.ts'; import type * as listSecrets from '#lib/lexicons/dev/knotless/listSecrets.ts'; import type { PageLoad } from './$types'; import { repoPage, xrpc } from '#lib/data.ts'; /** A repository's runners, and to its owner, or an admin of the organization that owns it, the secrets it gives them. */ export const load: PageLoad = async (event) => { const [{ repo, answer }, { viewer }] = await Promise.all([ repoPage(event, 'dev.knotless.listRunners'), event.parent() ]); const owns = (viewer?.actor?.did === repo.owner.did || !!repo.viewer?.admin) && !!repo.key; const quiet = { ...event, setHeaders: () => {} }; const secrets = owns ? await xrpc(quiet, 'dev.knotless.listSecrets', { owner: repo.owner.did, repo: repo.key! }) : null; return { repo, runners: answer.runners, minutes: answer.minutes ?? [], keys: answer.keys ?? [], secrets: secrets?.secrets ?? null }; };