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, или в частном репозитории (частные пакеты), чтобы поделиться с коллегами или организацией.

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

За использование GitHub Packages не взимается плата для общедоступных пакетов. Для частных пакетов каждая учетная запись на GitHub получает определенное количество свободного хранилища и передачи данных в зависимости от плана учетной записи. Использование с превышением предусмотренных объемов регулируется предельными суммами расходов. Дополнительные сведения см. в разделе Сведения о выставлении счетов за GitHub Packages.

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

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

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

ЯзыкDescriptionФормат пакетаКлиент пакета
JavaScriptДиспетчер пакетов узлаpackage.jsonnpm
RubyДиспетчер пакетов RubyGemsGemfilegem
JavaСредство управления и анализа проектов Apache Mavenpom.xmlmvn
JavaСредство автоматизации сборки Gradle для Javabuild.gradle или build.gradle.ktsgradle
.NETУправление пакетами NuGet для .NETnupkgdotnet CLI
Н/ПУправление контейнерами DockerDockerfileDocker

Дополнительные сведения о настройке клиента пакета для использования с 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 или с помощью REST API. Дополнительные сведения см. в разделе [AUTOTITLE и Конечные точки REST API для пакетов](/packages/learn-github-packages/deleting-and-restoring-a-package). Для некоторых реестров можно использовать GraphQL для удаления версии частного пакета.

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

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

Дополнительные сведения см. в разделе Формирование вызовов с помощью GraphQL](/packages/learn-github-packages/deleting-and-restoring-a-package).

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

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

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

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

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