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;
};