cli/src/commands/ci-trigger.tsblame
View source
59e66671import { spinner } from "@clack/prompts";
69d1a722import { hubRequest } from "../api.js";
69d1a723import { getRepoSlug } from "../config.js";
69d1a724
69d1a725export async function ciTrigger(args: string[]) {
69d1a726 const slug = await getRepoSlug(args);
69d1a727
69d1a728 const refIdx = args.indexOf("--ref");
69d1a729 const ref = refIdx !== -1 ? args[refIdx + 1] : undefined;
69d1a7210
191af2a11 const pipelineIdx = args.indexOf("--pipeline");
191af2a12 const pipeline = pipelineIdx !== -1 ? args[pipelineIdx + 1] : undefined;
191af2a13
59e666714 const s = spinner();
59e666715 s.start("Triggering pipelines");
69d1a7216 const result = await hubRequest<{ triggered: boolean; branch: string; commit_id: string }>(
69d1a7217 `/api/repos/${slug}/canopy/trigger`,
69d1a7218 {
69d1a7219 method: "POST",
191af2a20 body: JSON.stringify({ ref, pipeline }),
69d1a7221 }
69d1a7222 );
191af2a23 const label = pipeline ? `"${pipeline}"` : "pipelines";
191af2a24 s.stop(`Triggered ${label} on ${result.branch} (${result.commit_id.slice(0, 12)})`);
69d1a7225}