UNPKG

@scaleway/changesets-renovate

Version:

Automatically create changesets for Renovate and pnpm catalogs

29 lines (28 loc) • 1.46 kB
import { createChangeset } from "./createChangeset.js"; import { simpleGit } from "simple-git"; var { findChangedDependenciesFromGit, findAffectedPackages, handleChangesetFile } = await import("./git-utils.js"); async function handleCatalogChanges(diffFiles) { if (diffFiles.filter((file) => file.includes("pnpm-workspace.yaml")).length === 0) return; console.log("šŸ” Detected pnpm workspace changes, checking for catalog updates..."); console.log("šŸ” Comparing catalogs: HEAD~1 -> HEAD"); const changedDeps = await findChangedDependenciesFromGit("HEAD~1", "HEAD", "pnpm-workspace.yaml"); if (changedDeps.size === 0) { console.log("āœ… No catalog dependency changes.", { changedDeps }); return; } console.log("šŸ“¦ Changed dependencies:", changedDeps); const affectedPackages = await findAffectedPackages([...changedDeps.keys()]); if (affectedPackages.size === 0) { console.log("šŸ“¦ No packages affected by catalog changes."); return; } console.log("\nšŸ“ Affected packages:"); for (const pkg of affectedPackages) console.log(` - ${pkg}`); console.log("\nāœļø Creating changesets..."); const packageNames = [...affectedPackages.keys()]; const fileName = `.changeset/renovate-${(await simpleGit().revparse(["--short", "HEAD"])).trim()}.md`; await createChangeset(fileName, changedDeps, packageNames); await handleChangesetFile(fileName); console.log("\nāœ… Done creating changesets."); } export { handleCatalogChanges };