Skip to main content

Введение в GitHub Packages

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

Кто может использовать эту функцию?

Сведения о GitHub Packages

GitHub Packages — это платформа для размещения пакетов, включая контейнеры и другие зависимости, и управления ими. GitHub Packages объединяет исходный код и пакеты в одном месте, чтобы обеспечить интегрированное управление разрешениями и выставление счетов, чтобы вы могли централизованно разрабатывать программное обеспечение на GitHub.

Вы можете интегрировать GitHub Packages с API GitHub, GitHub Actions, а также веб-перехватчики для создания сквозного рабочего процесса DevOps, который включает в себя решения для кода, CI и развертывания.

GitHub Packages предлагает различные реестры пакетов для часто используемых диспетчеров пакетов, таких как npm, RubyGems, Apache Maven, Gradle, Docker и NuGet. GitHubContainer registry оптимизирован для контейнеров и поддерживает образы Docker и OCI. Дополнительные сведения о разных реестрах пакетов, поддерживаемых GitHub Packages, см. в разделе Работа с реестром GitHub Packages.

Вы можете просмотреть readME пакета, а также метаданные, такие как лицензирование, статистика скачивания, журнал версий и многое другое на GitHub. Дополнительные сведения см. в разделе Просмотр пакетов.

Общие сведения о разрешениях пакета

Разрешения для пакета наследуются из репозитория, в котором размещен пакет, или могут быть определены для определенных пользователей или организаций. Некоторые реестры поддерживают только разрешения, унаследованные от репозитория. Список этих реестров см. в разделе Сведения о разрешениях для пакетов GitHub. Дополнительные сведения о доступе к пакетам см. в разделе Настройка управления доступом и видимости пакета.

Обзор видимости пакета

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

О связанных артефактах для организаций

linked artifacts page — это альтернативный вид, к которому также можно получить доступ в разделе «Пакеты» в настройках организации.

Как и GitHub Packages, linked artifacts page позволяет собирать информацию о сборках вашей организации в одном месте. Команды могут использовать linked artifacts page для поиска исходного кода артефакта, деталей сборки и истории развертывания.

В отличие от GitHub Packages, linked artifacts page не размещает сам пакет или файлы изображений. Вместо этого он предоставляет авторитетный источник метаданных, связанных с каждым пакетом или изображением.

Вашей организации может быть полезно использование linked artifacts page или:

  •         **Наряду** с GitHub Packages, как дополнительный взгляд, сосредоточен на аспектах соответствия и безопасности потребления пакетов
    
  •         **В качестве альтернативы** GitHub Packages позволяет хранить ваши пакеты во внешнем реестре по вашему выбору, сохраняя видимость пакетов на GitHub
    

Дополнительные сведения см. в разделе О связанных артефактах.

Сведения о выставлении счетов за GitHub Packages

Использование GitHub Packages бесплатно **** для общедоступных пакетов.

Для частных пакетов каждая учетная запись на GitHub получает объем свободного хранилища и передачи** данных, определенный **планом учетной записи. Любое использование, превышающее включенные суммы, контролируется бюджетами.

Если у вашей учетной записи нет допустимого метода оплаты в файле, использование блокируется после использования квоты.

Если у вас есть допустимый метод оплаты в файле, расходы могут быть ограничены одним или несколькими бюджетами. Проверьте бюджеты, заданные для вашей учетной записи, чтобы убедиться, что они подходят для ваших потребностей в использовании. См . раздел AUTOTITLE.

Дополнительные сведения см. в разделе Выставление счетов за пакеты GitHub.

Поддерживаемые клиенты и форматы

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

Поддержка реестров пакетов

ЯзыкDescriptionФормат пакетаКлиент пакета
JavaScriptДиспетчер пакетов узлаpackage.jsonnpm
RubyДиспетчер пакетов RubyGemsGemfilegem
JavaСредство управления и анализа проектов Apache Mavenpom.xmlmvn
JavaСредство автоматизации сборки Gradle для Java
          `build.gradle` или `build.gradle.kts`  | `gradle`  |

| .NET | Управление пакетами NuGet для .NET | nupkg |
dotnet Интерфейс командной строки (CLI) | | Н/П | Управление контейнерами Docker | Dockerfile | Docker |

Дополнительные сведения о настройке клиента пакета для использования с GitHub Packagesсм. в разделе Работа с реестром GitHub Packages.

Дополнительные сведения о Docker и Container registryсм. в разделе Работа с реестром контейнеров.

Проверка подлинности в GitHub Packages

Примечание.

GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Управление личными маркерами доступа.

Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.

Можно использовать personal access token (classic) для проверки подлинности в API GitHub Packages или API GitHub . При создании personal access token (classic)можно назначить маркер различным областям в зависимости от ваших потребностей. Дополнительные сведения о областях, связанных с пакетами, для personal access token (classic), см. в разделе Сведения о разрешениях для пакетов GitHub.

Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:

  • GITHUB_TOKEN для публикации пакетов, связанных с репозиторием рабочих процессов.
  • personal access token (classic) с по крайней мере read:packages областью действия для установки пакетов, связанных с другими частными репозиториями (GITHUB_TOKEN можно использовать, если репозиторий предоставлен доступ на чтение к пакету. См . раздел AUTOTITLE.

Дополнительные сведения об GITHUB_TOKEN использовании в рабочих процессах GitHub Actions см. в разделе Использование GITHUB_TOKEN для проверки подлинности в рабочих процессах.

Управление пакетами

Пакет можно удалить в пользовательском интерфейсе GitHub или с помощью REST API. Дополнительные сведения см. в разделе [AUTOTITLE и Удаление и восстановление пакета](/rest/packages). Для некоторых реестров можно использовать GraphQL для удаления версии частного пакета.

С реестрами, поддерживающими детализированные разрешения, нельзя использовать API GraphQL GitHub Packages GraphQL. Реестры, поддерживающие только разрешения в области репозитория, и которые могут использоваться с API GraphQL, см. в разделе Сведения о разрешениях для пакетов GitHub.

При использовании API GraphQL для запроса и удаления частных пакетов необходимо использовать те же personal access token (classic) для проверки подлинности в GitHub Packages.

Дополнительные сведения см. в разделе Удаление и восстановление пакета](/graphql/guides/forming-calls-with-graphql).

Вы можете настроить веб-перехватчики, чтобы подписаться на события, связанные с пакетом, например на публикацию или обновление пакета. Дополнительные сведения см. в разделе AUTOTITLE.

Обращение в службу поддержки

Если у вас есть отзывы или запросы функций для GitHub Packages, используйте обсуждение GitHub Community.

Обратитесь к нам через Портал поддержки GitHub о GitHub Packages, если:

  • Вы наблюдаете что-либо, что противоречит документации.
  • Возникают непонятные ошибки.
  • Ваш опубликованный пакет содержит конфиденциальные данные, такие как нарушения GDPR, ключи API или личные сведения.