Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы, возможно, еще выполняется. Актуальные сведения см. в документации на английском языке.

Введение в GitHub Packages

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

GitHub Packages доступно с GitHub Free, GitHub Pro, GitHub Free для организаций, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server версии 3.0 или более новой и GitHub AE.
GitHub Packages недоступен для частных репозиториев, принадлежащих учетным записям, которые используют устаревшие планы для каждого репозитория. Кроме того, учетные записи, использующие устаревшие планы для каждого репозитория, не могут получить доступ к Container registry, так как эти учетные записи оплачиваются по репозиториям. Дополнительные сведения см. в разделе Продукты GitHub.

Сведения о GitHub Packages

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

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

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

Схема, показывающая поддержку пакетов для реестра контейнеров, RubyGems, npm, Apache Maven, NuGet и Gradle

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

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

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

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

За использование GitHub Packages не взимается плата для общедоступных пакетов. Для частных пакетов каждая учетная запись в GitHub.com получает определенный объем бесплатного хранилища и передачи данных в зависимости от продукта, используемого с учетной записью. Использование с превышением предусмотренных объемов регулируется предельными суммами расходов. Если счета выставляются ежемесячно, ваша учетная запись будет иметь предельную сумму расходов по умолчанию, равную 0 долларам США (USD), что делает невозможным дополнительное использование хранилища и передачу данных после достижения предельных объемов. Если вы оплачиваете учетную запись по счету, предельная сумма расходов по умолчанию для вашей учетной записи будет неограниченной. Дополнительные сведения см. в статье О выставлении счетов за GitHub Packages.

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

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

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

ЯзыкОписаниеФормат пакетаКлиент пакета
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 registry.

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

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

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

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

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

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

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

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

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

Пакет можно удалить в пользовательском интерфейсе GitHub или с помощью REST API. Дополнительные сведения см. в разделах Удаление и восстановление пакета и APIGitHub Packages. Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.

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

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

Дополнительные сведения см. в статье Создание вызовов с помощью GraphQL.

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

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

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

Свяжитесь Поддержка GitHub по поводу GitHub Packages, используя нашу форму обратной связи, если:

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