Introducción

Completado

Este módulo le presenta paquetes de GitHub, un servicio de hospedaje de paquetes totalmente integrado en GitHub. Aprenderá a publicar, instalar, eliminar y restaurar paquetes al mismo tiempo que controla los permisos y la visibilidad de la administración segura de paquetes.

¿Qué es Paquetes de GitHub?

Paquetes de GitHub es un servicio de hospedaje de paquetes de software que permite hospedar los paquetes, contenedores y otras dependencias directamente dentro de GitHub. Proporciona una plataforma central para la administración y facturación de permisos integrados, lo que simplifica los flujos de trabajo de desarrollo de software.

Ventajas clave

  • Integrado con GitHub: Los paquetes se encuentran junto con el código fuente en los repositorios.
  • Autenticación unificada: Use las mismas credenciales y permisos que los repositorios.
  • Varios registros: Compatibilidad con varios ecosistemas de paquetes en una plataforma.
  • Flujos de trabajo automatizados: Publique paquetes automáticamente con Acciones de GitHub.
  • Control de acceso: Permisos específicos para paquetes públicos, privados e internos.
  • Económico: Almacenamiento y transferencia gratuitos para paquetes públicos, con el uso incluido en los planes de GitHub.

Los registros de paquetes compatibles

Los paquetes de GitHub pueden hospedar paquetes para varios ecosistemas:

  • npm: Paquetes de JavaScript y Node.js
  • RubyGems: Paquetes de Ruby
  • Apache Maven: Paquetes de Java con Maven
  • Gradle: Paquetes de Java con Gradle
  • Docker: Imágenes de contenedor de Docker
  • NuGet: paquetes de .NET
  • Registro de contenedor: Optimizado para contenedores, admite imágenes de Docker y OCI

Captura de pantalla de los registros de paquetes de GitHub y la compatibilidad.

Permisos y visibilidad del paquete

Los paquetes de GitHub ofrecen flexibilidad para controlar los permisos y la visibilidad de los paquetes:

  • Paquetes públicos: Accesible para cualquier usuario de Internet sin autenticación.
  • Paquetes privados: Solo se puede acceder a usuarios y equipos con permisos explícitos.
  • Paquetes internos: Disponible para todos los miembros de una organización (solo GitHub Enterprise).
  • Permisos con ámbito de repositorio: Los paquetes heredan los permisos de su repositorio.
  • Permisos pormenorizados: Los paquetes de Container Registry admiten el control de acceso independiente.

Herencia de permisos: Para la mayoría de los tipos de paquete, los permisos se heredan del repositorio donde se publica el paquete. En el caso de las imágenes de contenedor, puede definir permisos por separado para cuentas de usuario u organización específicas.

Funcionalidades de integración

Puede integrar paquetes de GitHub con otras características de GitHub:

  • API de GitHub: Administre paquetes mediante programación mediante LAS API REST y GraphQL.
  • Acciones de GitHub: Automatice la publicación de paquetes en flujos de trabajo de CI/CD.
  • Webhooks: Desencadene flujos de trabajo externos cuando se produzcan eventos de paquete.
  • Avisos de seguridad: Publique avisos de seguridad para detectar vulnerabilidades de paquete.

Casos de uso

Paquetes de GitHub es ideal para:

  • Distribución de paquetes privados: Comparta bibliotecas internas dentro de su organización.
  • Hospedaje de paquetes públicos: Distribuir paquetes de código abierto a la comunidad.
  • Administración de imágenes de contenedor: Almacene e implemente imágenes de Docker para aplicaciones.
  • Administración de dependencias: Dependencias de host y versión para microservicios.
  • Integración de CI/CD: publique automáticamente paquetes desde canalizaciones de compilación.

Escenario: Modernización de la administración de paquetes

Imagine que trabaja para una empresa de desarrollo de software que mantiene varias bibliotecas internas y aplicaciones. Actualmente, el equipo usa registros de paquetes independientes para diferentes ecosistemas (npm, NuGet, Maven), cada uno de los cuales requiere credenciales, facturación y administración diferentes. Esto crea complejidad y fricción en el flujo de trabajo de desarrollo.

Al adoptar paquetes de GitHub, puede hacer lo siguiente:

  • Centralizar el hospedaje de paquetes: Todos los paquetes residen junto con el código fuente en GitHub.
  • Simplificación de la autenticación: Use las credenciales de GitHub en lugar de administrar varias cuentas del Registro.
  • Automatización de la publicación: Publique paquetes automáticamente cuando el código se combine o etiquete.
  • Control del acceso: Administrar quién puede ver, descargar y publicar paquetes.
  • Reducir los costos: Aproveche el almacenamiento gratuito para los paquetes públicos y el uso incluido para los paquetes privados.

En este módulo se explica cómo aprovechar paquetes de GitHub para simplificar el flujo de trabajo de administración de paquetes.

Objetivos de aprendizaje

Después de completar este módulo, los alumnos y profesionales podrán hacer lo siguiente:

  • Publique paquetes en GitHub Packages desde repositorios y flujos de trabajo de CI/CD.
  • Instale paquetes desde GitHub Packages en entornos de desarrollo y producción.
  • Elimine y restaure paquetes mediante la interfaz web y la API de GitHub.
  • Configure el control de acceso y la visibilidad de los paquetes públicos, privados e internos.
  • Autentíquese en paquetes de GitHub mediante tokens de acceso personal (PAT).
  • Comprenda los registros de paquetes admitidos y sus funcionalidades.

Requisitos previos

  • Descripción de los conceptos de DevOps: Familiaridad con las canalizaciones y la automatización de CI/CD.
  • Conocimientos de control de versiones: Experiencia con repositorios de Git y GitHub.
  • Experiencia de administración de paquetes: Descripción de los administradores de paquetes (npm, NuGet, Maven o Docker).
  • Cuenta de GitHub: Cuenta activa de GitHub para ejercicios prácticos. Si no tiene una, consulte Join GitHub (Unirse a GitHub).
  • Repositorio de GitHub: Repositorio para probar las operaciones de paquete. Consulte Creación de un nuevo repositorio.