Что такое пакеты GitHub?

Завершено

Пакеты GitHub — это служба управления пакетами, которая упрощает публикацию общедоступных или частных пакетов рядом с исходным кодом.

Заметка

Если вы еще не знакомы с GitHub, ознакомьтесь с модулем Введение в GitHub Learn.

Пакеты GitHub — это реестр пакетов

Пакеты GitHub позволяют предоставлять общий доступ к зависимостям проекта в организации или публично.

При работе с проектом с зависимостями пакетов важно доверять им, понять свой код и связаться с сообществом, создавшим их. В организациях также необходимо иметь возможность быстро найти утвержденные для вас ресурсы.

Пакеты GitHub используют тот же знакомый интерфейс GitHub для поиска общедоступных пакетов в любом месте GitHub или частных пакетов в организации или репозиториях.

Стандартный диспетчер пакетов

Пакеты GitHub совместимы с общими клиентами управления пакетами, поэтому вы можете публиковать пакеты с помощью выбранного средства. Если репозиторий более сложный, может потребоваться опубликовать несколько пакетов разных типов. Вы также можете использовать вебхуки или GitHub Actions для полной настройки рабочих процессов публикации и послепубликационных.

Вы публикуете пакет с открытым кодом? Многие проекты с открытым исходным кодом хранят свой код на сайте GitHub, поэтому вы можете публиковать предварительные версии пакетов для тестирования в сообществе, а затем легко продвигать определенные версии в общедоступный реестр по своему усмотрению.

страница пакета GitHub npm, содержащая описание и инструкции по установке.

На момент записи пакеты GitHub совместимы со следующими диспетчерами пакетов:

  • npm, диспетчер пакетов NodeJS
  • NuGet, диспетчер пакетов .NET
  • RubyGems, менеджер пакетов Ruby
  • Maven и Gradle, два диспетчера пакетов для Java

Пакеты GitHub также являются реестром контейнеров

От полных приложений до служебных программ CLI контейнеры являются другой формой распространения кода. Пакеты GitHub позволяют публиковать и распространять образы контейнеров. После публикации (в общедоступной или частной) эти изображения можно использовать в любом месте, включая:

  • В локальной среде разработки
  • В качестве базового изображения из вашей среды разработки GitHub Codespaces
  • В качестве шага для выполнения в рабочем процессе непрерывной интеграции (CI) / непрерывного развертывания (CD) с GitHub Actions
  • На сервере или облачной службе

страница образа контейнера GitHub с перечислением версий, статистикой и инструкциями по установке.

Сравнение пакетов GitHub с выпусками GitHub

Пакеты GitHub используются для публикации выпусков ваших библиотек в стандартный канал пакетов или реестр контейнеров. Они предназначены для использования возможностей работы конкретного клиента управления пакетами с этим каналом, таких как связывание с репозиторием, в котором был создан пакет, а также с версией кода, которая использовалась.

Выпуски GitHub используются для выпуска пакета упакованного программного обеспечения, а также заметок о выпуске и ссылок на двоичные файлы. Вы можете скачать эти релизы непосредственно из их уникального URL-адреса и отслеживать их до конкретного коммита, из которого они были созданы. Вы можете скачать только выпуски в виде архивов tarball или ZIP-файлов.

Унифицированное удостоверение и разрешения

Предположим, что вы работаете над проектом с помощью GitHub для размещения исходного кода: JavaScript для внешнего интерфейса с npm и Java для серверной части. Теперь вы поддерживаете по крайней мере три различных набора учетных данных и разрешений пользователя: для репозиториев Git, npm и Maven.

С помощью пакетов GitHub можно использовать один набор учетных данных в репозитории исходного кода, частный реестр npm и частный реестр Maven или Gradle. Пакеты, опубликованные через GitHub, наследуют видимость и разрешения, назначенные на уровне репозитория. Для нового члена команды требуется доступ на чтение пакета и его кода? Предоставьте им доступ на чтение к репозиторию и все готово!

Создание и публикация пакетов из GitHub

GitHub Actions — это еще одна функция GitHub, которая позволяет автоматизировать рабочие процессы программного обеспечения. Вы можете создавать, тестировать и развертывать код прямо на сайте GitHub.

Совет

Если вы хотите узнать больше о GitHub Actions, изучите модуль Learn о построении рабочих процессов непрерывной интеграции (CI) с использованием GitHub Actions.

Объединяя GitHub Actions и GitHub Packages, вы можете создать рабочий процесс, который будет создавать и тестировать код, а затем публиковать его в пакетах GitHub путем простой отправки кода в репозиторий.

В следующем уроке мы узнаем, как использовать рабочий процесс для публикации в пакетах GitHub и реестре контейнеров GitHub.