Skip to main content

Введение в GitHub Packages

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

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

GitHub Packages is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server 3.0 or higher.


GitHub Packages is not available for private repositories owned by accounts using legacy per-repository plans. Also, accounts using legacy per-repository plans cannot access registries that support granular permissions, because these accounts are billed by repository. Enterprise Managed Users do not have individual storage allocation to publish packages within their account's namespace, but can publish to an organization's namespace. For additional information on Enterprise Managed Users, see "About Enterprise Managed Users." For the list of registries that support granular permissions, see "About permissions for GitHub Packages." For more information, see "GitHub’s plans."

Сведения о GitHub Packages

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

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

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

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

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

Разрешения для пакета наследуются из репозитория, в котором размещен пакет, или могут быть определены для определенных пользователей или организаций. Некоторые реестры поддерживают только разрешения, унаследованные от репозитория. Список этих реестров см. в разделе "Сведения о разрешениях для пакетов 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

Note

Реестры Apache Maven и Gradle недоступны для GitHub Enterprise Cloud с размещением данных.

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

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

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

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

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

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

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

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

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

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

Пакет можно удалить в пользовательском интерфейсе GitHub Enterprise Cloud пользовательского интерфейса или с помощью 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)".

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

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

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

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

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