cli/src/commands/ci-cancel.tsblame
View source
59e66671import { spinner, log } from "@clack/prompts";
69d1a722import { hubRequest } from "../api.js";
69d1a723import { getRepoSlug } from "../config.js";
69d1a724
69d1a725export async function ciCancel(args: string[]) {
69d1a726 const slug = await getRepoSlug(args);
69d1a727
69d1a728 const runId = args.find((a) => !a.startsWith("--") && /^\d+$/.test(a));
69d1a729 if (!runId) {
59e666710 log.error("Usage: grove ci cancel <run-id> [--repo <owner/repo>]");
69d1a7211 process.exit(1);
69d1a7212 }
69d1a7213
59e666714 const s = spinner();
59e666715 s.start(`Cancelling run #${runId}`);
69d1a7216 const { run } = await hubRequest<{ run: { id: number; status: string } }>(
69d1a7217 `/api/repos/${slug}/canopy/runs/${runId}/cancel`,
69d1a7218 { method: "POST" }
69d1a7219 );
59e666720 s.stop(`Cancelled run #${run.id} (${run.status})`);
69d1a7221}