Saltar al contenido
mypipelines
Pipelines Actions Gradle Buscar

andresmontoyat/delete-package-versions ↗

Delete Package Versions

GitHub Action que borra versiones de un paquete en GitHub Packagesnpm, container, maven, nuget, rubygems. Hasta 100 versiones por corrida.

Fork mantenido de actions/delete-package-versions (upstream dejó de aceptar contribuciones). Contrato de la action sin cambios — drop-in replacement.

Capacidades

  • Retención: mantener las N versiones más recientes, borrar el resto
  • Borrar las N versiones más viejas
  • Mantener sólo N pre-releases (política de pre-release)
  • Ignorar versiones por regex
  • Borrar sólo versiones untagged (container)
  • Borrar por id específico, o de un paquete en otro repo (con PAT)

Uso

.github/workflows/cleanup-packages.yml
- uses: andresmontoyat/delete-package-versions@v1
with:
package-name: 'mi-servicio'
package-type: 'container'
min-versions-to-keep: 10 # conserva las 10 más recientes
delete-only-untagged-versions: true

Inputs

InputRequeridoDefaultDescripción
package-nameNombre del paquete
package-typecontainer · maven · npm · nuget · rubygems
ownernorepo ownerDueño del repo del paquete
package-version-idsnoLista de ids de versión (coma-separada)
num-old-versions-to-deleteno1Cantidad de versiones más viejas a borrar
min-versions-to-keepno-1Versiones recientes a conservar (0 = borrar todas; tiene precedencia sobre num-old-versions-to-delete)
ignore-versionsno^$Regex de versiones a excluir
delete-only-pre-release-versionsnofalseSólo pre-releases (excluye num-old-* e ignore-versions)
delete-only-untagged-versionsnofalseSólo untagged, container (excluye num-old-*)
tokennogithub.tokenToken con scope para borrar; PAT si el paquete está fuera del repo

Scopes del token: con package-version-idsdelete:packages; sin él → delete:packages + read:packages.

Qué modernizamos (fork)

ÁreaUpstreamEste fork
Modelo asyncRxJS 7 Observablesasync/await nativo + Promise.allSettled
Estado globalContador mutable a nivel móduloEliminado — DeleteSummary por llamada
InputCargaba numDeleted runtimeInput puro, sin estado runtime
ESLint8.x legacy9.x flat config
TypeScriptSin pin^5.6 strict mode completo
MSW (tests)1.x2.x (http / HttpResponse)
ErroresCasts sueltosextractApiError() tipado
CIWorkflow único, checkout@v2Matrix node 20/22 + check-dist modernizado
RuntimeNode 20, GHES-compatible