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 недоступен для частных репозиториев, принадлежащих учетным записям, которые используют устаревшие планы для каждого репозитория. Кроме того, учетные записи, использующие устаревшие планы для каждого репозитория, не могут получить доступ к реестрам, поддерживающим детализированные разрешения, так как эти учетные записи оплачиваются репозиторием. Список реестров, поддерживающих детализированные разрешения, см. в разделе Сведения о разрешениях для пакетов GitHub. Дополнительные сведения см. в разделе Продукты GitHub.

Сведения о GitHub Packages

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

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

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

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

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

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

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

Вы можете публиковать пакеты в общедоступном репозитории (общедоступные пакеты), чтобы совместно использовать их со всеми участниками 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.

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

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

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

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

Вы можете использовать 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. Дополнительные сведения см. в разделах Удаление и восстановление пакета и Пакеты. Для некоторых реестров можете использовать GraphQL для удаления версии частного пакета.

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

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

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

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

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

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

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

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