Resumen
Este módulo le introdujo en Paquetes de GitHub, un servicio de hospedaje de paquetes totalmente integrado en GitHub. Ha aprendido a publicar, instalar, eliminar y restaurar paquetes al mismo tiempo que controla los permisos y la visibilidad de la administración segura de paquetes.
Lo que ha aprendido
Ha aprendido a describir las ventajas y el uso de:
Publicar paquetes
- Registros admitidos: npm, NuGet, Maven, Gradle, RubyGems, Docker y Container Registry.
- Autenticación: creación y uso de tokens de acceso personal (PAT) con ámbitos adecuados.
- Flujo de trabajo de publicación: Autentíquese, configure los metadatos del paquete y publíquelos mediante herramientas nativas.
- Publicación de NuGet: Uso de la CLI de dotnet y archivos de nuget.config para la autenticación.
- Publicación de npm: Configuración de archivos .npmrc y uso del inicio de sesión de npm para la autenticación.
- Automatización: Publicar paquetes automáticamente con flujos de trabajo de Acciones de GitHub.
- Procedimientos recomendados: Control de versiones, documentación, avisos de seguridad y integridad de los metadatos.
Instalación de paquetes
- Detección de paquetes: Búsqueda global, dentro de organizaciones o en repositorios.
- Flujo de trabajo de instalación: Autentíquese en paquetes de GitHub e instale con administradores de paquetes nativos.
- Instalación de NuGet: Usando Visual Studio, la CLI de dotnet o las ediciones directas de .csproj.
- Instalación de npm: Configuración de archivos .npmrc, package.json dependencias y compatibilidad con varias organizaciones.
- Integración de CI/CD: Instalación de paquetes en Acciones de GitHub mediante GITHUB_TOKEN.
- Solución de problemas: Resolución de problemas de autenticación, permiso y versión.
Eliminación y restauración de paquetes
- Reglas de eliminación: Descripción de las restricciones de los paquetes públicos (límite de descarga de 5000).
- Requisitos de permisos: Acceso de administrador para paquetes con ámbito de repositorio.
- Eliminación de versiones: Quitar versiones específicas mientras mantiene otras disponibles.
- Eliminación de paquetes completos: Quitar todas las versiones de paquetes de GitHub.
- Condiciones de restauración: ventana de 30 días, disponibilidad del espacio de nombres y retención de permisos.
- API Management: Uso de la API REST para las operaciones de paquetes mediante programación.
- Procedimientos recomendados: Comunicación, desaprobación, períodos de gracia y rastros de auditoría.
Configuración del control de acceso y la visibilidad
- Modelos de permisos: Permisos heredados del repositorio frente a permisos granulares (registro de contenedor).
- Opciones de visibilidad: Paquetes públicos, privados e internos (solo enterprise).
- Permisos de imagen de contenedor: roles de lectura, escritura y de administrador con control de acceso independiente.
- Acceso de usuario y equipo: Conceder permisos a usuarios y equipos.
- Procedimientos recomendados de seguridad: Privilegios mínimos, auditorías periódicas, acceso basado en equipo y documentación.
- Estrategias organizativas: Visibilidad estandarizada, procesos de solicitud de acceso y alineación de cumplimiento.
Resumen de conceptos clave
Integración de paquetes de GitHub
- Plataforma unificada: Los paquetes se encuentran junto con el código fuente en GitHub.
- Misma autenticación: Use credenciales de GitHub en lugar de cuentas de registro independientes.
- Automatización del flujo de trabajo: Publique paquetes automáticamente con Acciones de GitHub.
- Varios registros: Compatibilidad con npm, NuGet, Maven, Docker y más en una plataforma.
Seguridad y control de acceso
- Permisos pormenorizados: Container Registry admite el control de acceso independiente.
- Permisos heredados del repositorio: La mayoría de los tipos de paquete siguen el acceso al repositorio.
- Autenticación PAT: Autenticación segura mediante tokens de acceso personal.
- Público frente a privado: Elija la visibilidad en función de las necesidades de seguridad y colaboración.
Administración del ciclo de vida de paquetes
- Editorial: Publicación automatizada o manual con herramientas de paquetes nativas.
- Control de versiones: Control de versiones semántico para una comunicación de cambio clara.
- Deleción: Quite versiones obsoletas o vulnerables con restricciones de seguridad.
- Restauración: Recuperar paquetes eliminados en un período de 30 días.
Ventajas de automatización
- Integración de CI/CD: Integración perfecta con Acciones de GitHub.
- GITHUB_TOKEN: Autenticación automática en flujos de trabajo sin PAT.
- Publicación coherente: Cada versión crea automáticamente un paquete.
- Puertas de calidad: Ejecute pruebas antes de publicar paquetes.
Pasos siguientes
Continuar aprendiendo
Mejore sus habilidades con los paquetes de GitHub:
- Autenticación avanzada: Implemente estrategias de autenticación para toda la organización.
- Promoción de paquetes: Desarrolle flujos de trabajo para promover paquetes a través de fases de calidad.
- Publicación de Monorepo: Publique varios paquetes desde un único repositorio.
- Examen de seguridad: Integre el examen de vulnerabilidades para los paquetes publicados.
Explorar escenarios avanzados:
- Compatibilidad con varios registros: Configure proyectos para que usen varios registros de paquetes.
- Creación de reflejo del paquete: Almacenar en caché paquetes externos en paquetes de GitHub.
- Automatización personalizada: Cree flujos de trabajo de publicación avanzados con Acciones de GitHub.
- Análisis de paquetes: Realice un seguimiento del uso y la adopción de los paquetes.
Aplicación práctica
Empiece a implementar:
- Configuración de la autenticación: Cree PATs con ámbitos adecuados para su equipo.
- Publicar el primer paquete: Elija un registro y publique un paquete de prueba.
- Configurar consumidores: configure los proyectos para instalar paquetes desde GitHub Packages.
- Automatización de la publicación: Cree flujos de trabajo de Acciones de GitHub para la publicación automatizada.
- Configurar el control de acceso: Establezca la visibilidad y los permisos en función de las necesidades de seguridad.
- Procedimientos de documento: Cree directrices de equipo para la administración de paquetes.
Integración con prácticas de DevOps
Paquetes de GitHub en flujos de trabajo de DevOps:
- Integración continua: Compilar y publicar paquetes automáticamente en commits.
- Entrega continua: Utilice paquetes como artefactos en pipelines de implementación.
- Administración de dependencias: Centralice las dependencias internas en paquetes de GitHub.
- Control de versiones: Realice un seguimiento de las versiones del paquete junto con las versiones de código.
- Cumplimiento de seguridad: Implemente controles de acceso alineados con las directivas organizativas.
Más información
Documentación oficial
- Inicio rápido de paquetes de GitHub - Comienza rápidamente con Paquetes de GitHub.
- Obtenga información sobre los paquetes de GitHub : guía completa sobre los conceptos de paquetes de GitHub.
- Trabajar con un registro de paquetes de GitHub : guías específicas del Registro para todos los tipos de paquetes admitidos.
- Acerca de los permisos para paquetes de GitHub : descripción de los modelos de permisos y el control de acceso.
Guías específicas del Registro
- Trabajar con el registro de npm : guía completa de administración de paquetes de npm.
- Trabajar con el registro de NuGet : guía completa de administración de paquetes NuGet.
- Trabajando con el registro de contenedores - Administración de imágenes de Docker y OCI.
- Uso del registro de Apache Maven : administración de paquetes de Maven.
- Trabajar con el registro de Gradle : administración de paquetes de Gradle.
Procedimientos recomendados y de seguridad
- Configuración del control de acceso y la visibilidad de un paquete : administración de la seguridad del paquete.
- Eliminación y restauración de un paquete : administración del ciclo de vida del paquete.
- Publicación de un paquete : procedimientos recomendados para la publicación de paquetes.
- Instalación de un paquete - Mejores prácticas para el consumo de paquetes.
API y automatización
- API de paquetes de GitHub : API REST para la administración de paquetes mediante programación.
- Publicación de paquetes con Acciones de GitHub : ejemplos de integración de CI/CD.
- Uso de paquetes de GitHub con Acciones de GitHub : patrones de flujo de trabajo avanzados.
Comunidad y soporte técnico
- Documentación de GitHub: Explore guías y tutoriales completos.
- Comunidad de GitHub: Formular preguntas y obtener respuestas de la comunidad.
- Blog de GitHub: Manténgase actualizado con las últimas características y anuncios.
- Aptitudes de GitHub: Rutas de aprendizaje interactivas para las características de GitHub.