Eliminación y restauración de paquetes

Completado

La eliminación y restauración de paquetes en Paquetes de GitHub le permite administrar el ciclo de vida de los paquetes, quitar versiones obsoletas y recuperar paquetes eliminados accidentalmente. Comprender las reglas de eliminación y los procedimientos de restauración es esencial para la gobernanza de paquetes.

Descripción de los permisos de eliminación

Puede eliminar paquetes de GitHub si tiene los permisos de acceso necesarios:

Lo que puede eliminar

Paquetes privados:

  • Paquete privado completo: Eliminar todas las versiones a la vez
  • Versión específica: Eliminación selectiva de versiones individuales

Paquetes públicos (con restricciones):

  • Paquete público completo: Solo si no hay más de 5000 descargas de ninguna versión
  • Versión específica: Solo si esa versión no tiene más de 5000 descargas

Permisos necesarios

Paquetes con ámbito de repositorio:

  • Permisos de administrador: Debe tener acceso de administrador al repositorio que posee el paquete.
  • Permisos heredados: Los permisos de paquete siguen el control de acceso al repositorio

Paquetes con ámbito de usuario u organización (Registro de contenedores):

  • Rol de administrador de paquetes: Acceso directo de administrador al paquete
  • Propietario de la organización: Acceso total a todos los paquetes de la organización

Importante

El límite de 5,000 descargas para paquetes públicos es una medida de seguridad para evitar daños a paquetes que son ampliamente utilizados. Una vez que un paquete supera este umbral, la eliminación está deshabilitada para proteger a los consumidores.

Requisitos de restauración

Puede restaurar paquetes eliminados en condiciones específicas:

Condiciones de restauración

  • Ventana de 30 días: Debe restaurar el paquete en un plazo de 30 días a partir de su eliminación.
  • Disponibilidad del espacio de nombres: El mismo espacio de nombres de paquete todavía debe estar disponible y no se debe usar para un nuevo paquete.
  • Permisos retenidos: Todavía tiene los permisos necesarios para acceder al paquete.

Cuando la restauración no es posible:

  • Más de 30 días han pasado desde la eliminación
  • Se ha publicado un nuevo paquete con el mismo nombre
  • Ya no tiene permisos de acceso al paquete original.
  • Se ha eliminado el repositorio o la organización.

Uso de la API de REST

Puede usar la API rest de GitHub para administrar paquetes mediante programación :

Funcionalidades de API:

  • Enumerar paquetes: Obtener todos los paquetes de un usuario u organización
  • Obtenga los detalles del paquete: Recuperación de metadatos para un paquete específico
  • Eliminar versión del paquete: Quitar una versión específica
  • Elimine todo el paquete: Quitar todas las versiones
  • Restaurar la versión del paquete: Recuperación de una versión eliminada
  • Enumerar las versiones del paquete: Ver todas las versiones disponibles

Para obtener más información, consulte la API de paquetes de GitHub.

Ejemplo de uso de api

Elimine una versión del paquete:

curl -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.github.com/user/packages/npm/PACKAGE_NAME/versions/VERSION_ID

Restaurar una versión del paquete:

curl -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  https://api.github.com/user/packages/npm/PACKAGE_NAME/versions/VERSION_ID/restore

Eliminación de una versión del paquete

Puede eliminar versiones individuales de un paquete mientras mantiene otras versiones disponibles. Esto es útil para quitar versiones rotas, vulnerables o obsoletas.

Opciones de ámbito de eliminación

Las versiones del paquete se pueden eliminar en distintos ámbitos:

  • Paquete con ámbito de repositorio en GitHub: Uso de la interfaz web para paquetes vinculados a repositorios
  • Paquete a nivel de repositorio con GraphQL: Uso de la API para la eliminación mediante programación
  • Paquete con ámbito de usuario en GitHub: Eliminar de tu cuenta personal
  • Paquete con ámbito de organización en GitHub: Eliminar de los paquetes de la organización

Eliminación a través de la interfaz web

Para eliminar una versión de un paquete con ámbito de repositorio:

Paso 1: Navegar al paquete

  1. En GitHub.com, vaya a la página principal del repositorio.
  2. A la derecha de la lista de archivos, haga clic en Paquetes.
  3. Busque y seleccione el paquete.

Paso 2: Administración de versiones de acceso

  1. En la parte superior derecha de la página de aterrizaje del paquete, haga clic en Configuración del paquete .
  2. En la barra lateral izquierda, haga clic en Administrar versiones.

Paso 3: Eliminar versión

  1. A la derecha de la versión que desea eliminar, haga clic en el menú y seleccione Eliminar versión.
  2. Para confirmar la eliminación, escriba el nombre del paquete y haga clic en Comprendo las consecuencias, elimine esta versión.

Advertencia

La eliminación es permanente después de la ventana de restauración de 30 días. Asegúrese de que tiene la versión correcta antes de confirmar.

Procedimientos recomendados para la eliminación de versiones

Antes de eliminar una versión:

  • Comprobación de dependencias: Compruebe que ningún proyecto activo dependa de esta versión.
  • Notificar a los consumidores: Anunciar la deprecación antes de la eliminación
  • Motivo del documento: Agregar comentarios que explican por qué se quitó la versión
  • Mantener alternativas: Asegúrese de que hay disponible una versión de reemplazo
  • Información de archivo: Guardar notas de la versión y documentación externamente

Eliminación de un paquete completo

Puede eliminar todas las versiones de un paquete a la vez. Esto elimina completamente el paquete de GitHub Packages.

Opciones de ámbito de eliminación

Los paquetes completos se pueden eliminar en distintos ámbitos:

  • Paquete con ámbito de repositorio en GitHub: eliminación de paquetes de repositorio
  • Paquete con ámbito de usuario en GitHub: Eliminar de la cuenta personal
  • Paquete con ámbito de organización en GitHub: Eliminar de los paquetes de la organización

Eliminación a través de la interfaz web

Para eliminar un paquete de ámbito de repositorio completo:

Paso 1: Navegar al paquete

  1. En GitHub.com, vaya a la página principal del repositorio.
  2. A la derecha de la lista de archivos, haga clic en Paquetes.
  3. Busque y seleccione el paquete.

Paso 2: Configuración del paquete de acceso

  1. En la parte superior derecha de la página de aterrizaje del paquete, haga clic en Configuración del paquete .

Paso 3: Eliminar paquete

  1. Desplácese hacia abajo hasta la sección Zona de peligro .
  2. Haga clic en Eliminar este paquete.
  3. Revise cuidadosamente el mensaje de confirmación.
  4. Escriba el nombre del paquete para confirmar
  5. Haga clic en Entender y elimine este paquete.

Precaución

Al eliminar un paquete completo, se quitan todas las versiones y todos los metadatos. Esta acción es irreversible después de 30 días. Los consumidores en función de este paquete experimentarán compilaciones interrumpidas.

Cuándo eliminar paquetes completos

Escenarios adecuados:

  • Proyecto abandonado: El paquete ya no se mantiene o es necesario
  • Reemplazado por alternativa: El nuevo paquete reemplaza al anterior
  • Problema de seguridad: El paquete contiene vulnerabilidades irremediables
  • Requisito de cumplimiento: Razones legales o normativas
  • Repositorio incorrecto: El paquete se publicó en una ubicación incorrecta

Alternativas a la eliminación:

  • Aviso de desuso: Marcar el paquete como en desuso sin eliminar
  • Repositorio de archivo: Conservar el paquete pero indicar el fin de su vida útil
  • Visibilidad privada: Cambiar a privado en lugar de eliminar
  • Actualización de documentación: Adición de advertencias sobre no usar el paquete

Restauración de una versión del paquete

Puede restaurar paquetes eliminados en la ventana de restauración de 30 días . Esto le permite recuperarse de eliminaciones accidentales.

Procedimiento de restauración

Para restaurar una versión de paquete eliminada:

Paso 1: Navegar al paquete

  1. Vaya a la página de aterrizaje del paquete.
  2. A la derecha, haga clic en Configuración del paquete.

Paso 2: Buscar versiones eliminadas

  1. En la barra lateral izquierda, haga clic en Administrar versiones.
  2. Usar el menú desplegable Versiones de la parte superior derecha
  3. Seleccione Eliminado para mostrar solo las versiones eliminadas.

Paso 3: Restaurar versión

  1. Junto a la versión del paquete eliminado que desea restaurar, haga clic en Restaurar.
  2. Para confirmar, haga clic en Entiendo las consecuencias, restaurar esta versión.

Sugerencia

Los paquetes restaurados vuelven a la misma configuración de visibilidad que tenían antes de la eliminación (pública, privada o interna).

Escenarios de restauración

Casos de uso comunes de restauración:

  • Eliminación accidental: Restauración de la versión eliminada por error
  • Recuperación de dependencias: El consumidor necesita una versión eliminada anteriormente
  • Decisión de reversión: decidido no quitar la versión después de todo
  • Fines de prueba: Necesidad de una versión anterior para las pruebas de comparación
  • Requisito de cumplimiento: Debe conservar las versiones históricas

Pasos posteriores a la restauración

Después de restaurar un paquete:

  1. Compruebe la funcionalidad: Prueba de que el paquete restaurado funciona correctamente
  2. Documentación de actualización: Agregar notas sobre la eliminación y restauración
  3. Notificar a los consumidores: Informar a los usuarios que el paquete está disponible de nuevo
  4. Revise los permisos: Asegurarse de que los controles de acceso siguen siendo adecuados
  5. Considere alternativas: Evaluar si la eliminación era el enfoque correcto

Administración del ciclo de vida de paquetes

Procedimientos recomendados para la administración de paquetes:

  • Desuso primero: Marcar las versiones como en desuso antes de eliminarlas
  • Plan de comunicación: Notificar a los consumidores con antelación
  • Período de gracia: Permitir el tiempo para que los consumidores migren
  • Retención de versiones: Mantener las versiones mínimas viables disponibles
  • Rastro de Auditoría: Documentar todas las decisiones de eliminación
  • Limpieza automatizada: Uso de directivas para quitar versiones anteriores sistemáticamente

Recursos adicionales

Para obtener más información, consulte: