scripts/delete-old-prs.ts (36 lines of code) (raw):
#!/usr/bin/env -S deno run --allow-env --allow-net --allow-run --allow-read
// To format: npx prettier --write .
import { commit, listFiles } from "npm:@huggingface/hub@0.15.1";
const oneMonthAgo = new Date(Date.now() - 30 * 24 * 3600 * 1000);
const allFiles = listFiles({
repo: { type: "dataset", name: "hf-doc-build/doc-build-dev" },
recursive: true,
expand: true,
});
const filesToDelete: string[] = [];
let fileCount = 0;
let filesWithoutDates = 0;
for await (const file of allFiles) {
fileCount++;
if (file.type !== "file" || !file.path.endsWith(".zip")) {
continue;
}
const date = file.lastCommit?.date;
if (!date) {
filesWithoutDates++;
continue;
}
if (oneMonthAgo < new Date(date)) {
continue;
}
filesToDelete.push(file.path);
}
console.log({fileCount, filesWithoutDates});
if (filesToDelete.length) {
console.log("deleting", filesToDelete.length, "files");
await commit({
repo: { type: "dataset", name: "hf-doc-build/doc-build-dev" },
credentials: { accessToken: Deno.env.get("HF_ACCESS_TOKEN") },
title: "Delete old docs",
operations: filesToDelete.map((file) => ({
operation: "delete",
path: file,
})),
});
}