Что такое пакеты GitHub?
Пакеты GitHub — это служба управления пакетами, которая упрощает публикацию общедоступных или частных пакетов рядом с исходным кодом.
Заметка
Если вы еще не знакомы с GitHub, ознакомьтесь с модулем Введение в GitHub Learn.
Пакеты GitHub — это реестр пакетов
Пакеты GitHub позволяют предоставлять общий доступ к зависимостям проекта в организации или публично.
При работе с проектом с зависимостями пакетов важно доверять им, понять свой код и связаться с сообществом, создавшим их. В организациях также необходимо иметь возможность быстро найти утвержденные для вас ресурсы.
Пакеты GitHub используют тот же знакомый интерфейс GitHub для поиска общедоступных пакетов в любом месте GitHub или частных пакетов в организации или репозиториях.
Стандартный диспетчер пакетов
Пакеты GitHub совместимы с общими клиентами управления пакетами, поэтому вы можете публиковать пакеты с помощью выбранного средства. Если репозиторий более сложный, может потребоваться опубликовать несколько пакетов разных типов. Вы также можете использовать вебхуки или GitHub Actions для полной настройки рабочих процессов публикации и послепубликационных.
Вы публикуете пакет с открытым кодом? Многие проекты с открытым исходным кодом хранят свой код на сайте GitHub, поэтому вы можете публиковать предварительные версии пакетов для тестирования в сообществе, а затем легко продвигать определенные версии в общедоступный реестр по своему усмотрению.
На момент записи пакеты GitHub совместимы со следующими диспетчерами пакетов:
- npm, диспетчер пакетов NodeJS
- NuGet, диспетчер пакетов .NET
- RubyGems, менеджер пакетов Ruby
- Maven и Gradle, два диспетчера пакетов для Java
Пакеты GitHub также являются реестром контейнеров
От полных приложений до служебных программ CLI контейнеры являются другой формой распространения кода. Пакеты GitHub позволяют публиковать и распространять образы контейнеров. После публикации (в общедоступной или частной) эти изображения можно использовать в любом месте, включая:
- В локальной среде разработки
- В качестве базового изображения из вашей среды разработки GitHub Codespaces
- В качестве шага для выполнения в рабочем процессе непрерывной интеграции (CI) / непрерывного развертывания (CD) с GitHub Actions
- На сервере или облачной службе
Сравнение пакетов 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.