~james/core

core/web/src/lib/api/pipelineActions.ts -rw-r--r-- 1017 bytes
452f17b7 — james chore(import): snapshot james.dad.town/core at f70c71c7696a 15 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { ok } from "@atcute/client";
import type { OAuthUserAgent } from "@atcute/oauth-browser-client";
import { spindleXrpc, type SpindleTarget } from "#lib/api/spindlewrite.ts";
import { mainSchema as approvePipelineSchema } from "#lib/api/lexicons/types/org/tangled/ci/approvePipeline.ts";
import { mainSchema as retryPipelineSchema } from "#lib/api/lexicons/types/org/tangled/ci/retryPipeline.ts";

export const approvePipeline = async (
	agent: OAuthUserAgent,
	spindle: URL,
	target: SpindleTarget,
	pipeline: string
): Promise<void> => {
	await ok(
		(await spindleXrpc(agent, spindle, target)).call(approvePipelineSchema, {
			input: { repo: target.repoDid, pipeline }
		})
	);
};

export const retryPipeline = async (
	agent: OAuthUserAgent,
	spindle: URL,
	target: SpindleTarget,
	pipeline: string
): Promise<string> => {
	const retried = await ok(
		(await spindleXrpc(agent, spindle, target)).call(retryPipelineSchema, {
			input: { repo: target.repoDid, pipeline }
		})
	);
	return retried.pipeline;
};