package-cleanup/main.ts
2024-01-25 22:33:40 +01:00

40 lines
1 KiB
TypeScript

import { parse } from "./args.ts";
interface Package {
name: string;
type: string;
version: string;
}
const args = parse();
const getPackages = await fetch(
`${args.url}/api/v1/packages/${args.owner}?access_token=${args.token}`,
{ method: "GET" },
);
if (getPackages.status !== 200) {
console.error("Failed to get package");
Deno.exit(1);
}
const packages = await getPackages.json() as Package[];
const containerPackages = packages.filter((pkg) => pkg.type == "container");
for (const pkg of containerPackages) {
const deletePackage = await fetch(
`${args.url}/api/v1/packages/${args.owner}/${pkg.name}/${pkg.version}?access_token=${args.token}`,
{ method: "DELETE" },
);
if (deletePackage.status !== 204) {
console.error(
"Unexpected status code",
deletePackage.status,
deletePackage.statusText,
);
console.error(
`Failed to delete package: name: ${pkg.name}: version: ${pkg.version}`,
);
const body = await deletePackage.text();
console.error(body);
}
}