Resumen

Completado

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:

  1. Configuración de la autenticación: Cree PATs con ámbitos adecuados para su equipo.
  2. Publicar el primer paquete: Elija un registro y publique un paquete de prueba.
  3. Configurar consumidores: configure los proyectos para instalar paquetes desde GitHub Packages.
  4. Automatización de la publicación: Cree flujos de trabajo de Acciones de GitHub para la publicación automatizada.
  5. Configurar el control de acceso: Establezca la visibilidad y los permisos en función de las necesidades de seguridad.
  6. 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

Guías específicas del Registro

Procedimientos recomendados y de seguridad

API y automatización

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.