Eliminación y restauración de paquetes
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
- En GitHub.com, vaya a la página principal del repositorio.
- A la derecha de la lista de archivos, haga clic en Paquetes.
- Busque y seleccione el paquete.
Paso 2: Administración de versiones de acceso
- En la parte superior derecha de la página de aterrizaje del paquete, haga clic en Configuración del paquete .
- En la barra lateral izquierda, haga clic en Administrar versiones.
Paso 3: Eliminar versión
- A la derecha de la versión que desea eliminar, haga clic en el menú ⋯ y seleccione Eliminar versión.
- 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
- En GitHub.com, vaya a la página principal del repositorio.
- A la derecha de la lista de archivos, haga clic en Paquetes.
- Busque y seleccione el paquete.
Paso 2: Configuración del paquete de acceso
- En la parte superior derecha de la página de aterrizaje del paquete, haga clic en Configuración del paquete .
Paso 3: Eliminar paquete
- Desplácese hacia abajo hasta la sección Zona de peligro .
- Haga clic en Eliminar este paquete.
- Revise cuidadosamente el mensaje de confirmación.
- Escriba el nombre del paquete para confirmar
- 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
- Vaya a la página de aterrizaje del paquete.
- A la derecha, haga clic en Configuración del paquete.
Paso 2: Buscar versiones eliminadas
- En la barra lateral izquierda, haga clic en Administrar versiones.
- Usar el menú desplegable Versiones de la parte superior derecha
- Seleccione Eliminado para mostrar solo las versiones eliminadas.
Paso 3: Restaurar versión
- Junto a la versión del paquete eliminado que desea restaurar, haga clic en Restaurar.
- 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:
- Compruebe la funcionalidad: Prueba de que el paquete restaurado funciona correctamente
- Documentación de actualización: Agregar notas sobre la eliminación y restauración
- Notificar a los consumidores: Informar a los usuarios que el paquete está disponible de nuevo
- Revise los permisos: Asegurarse de que los controles de acceso siguen siendo adecuados
- 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:
- Eliminación y restauración de un paquete: GitHub Docs : guía de eliminación y restauración completas.
- Trabajando con un registro de paquetes de GitHub - operaciones específicas del registro.
- Trabajar con el repositorio de NuGet: los procedimientos de eliminación específicos de NuGet.
- Trabajar con el registro de npm: procedimientos de eliminación específicos de npm.
- Permisos necesarios : descripción de los requisitos de permisos para las operaciones de paquete.