~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/knotless

git that lives in your Atmosphere account

Forked from chadtmiller.com/knotless

0
0
27 lines · 1.0 KB Raw History
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<typeof listRunners.main>(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<typeof listSecrets.main>(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
	};
};