# Введение в GitHub Packages

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

<!-- 2148AF7B-5FF8-4B28-A808-D692FEE2225A -->

## Около GitHub Packages

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

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

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

GitHubоптимизирован Container registry для контейнеров и поддерживает образы Docker и OCI. Для получения дополнительной информации о различных поддерживающих реестрах GitHub Packages пакетов см. [Работа с реестром GitHub Packages](/ru/packages/working-with-a-github-packages-registry).

Вы можете просматривать README пакета, а также метаданные, такие как лицензирование, статистика загрузок, история версий и многое другое на GitHub. Дополнительные сведения см. в разделе [Просмотр пакетов](/ru/packages/learn-github-packages/viewing-packages).

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

Разрешения для пакета наследуются из репозитория, в котором размещен пакет, или могут быть определены для определенных пользователей или организаций. Некоторые реестры поддерживают только разрешения, унаследованные от репозитория. Список этих реестров см. в разделе [Сведения о разрешениях для пакетов GitHub](/ru/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages). Дополнительные сведения о доступе к пакетам см. в разделе [Настройка управления доступом и видимости пакета](/ru/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

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

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

Дополнительные сведения см. в разделе [О связанных артефактах](/ru/code-security/concepts/supply-chain-security/linked-artifacts).

## О выставлении счетов GitHub Packages

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

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

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

Если у вас есть допустимый метод оплаты в файле, расходы могут быть ограничены одним или несколькими бюджетами. Проверьте бюджеты, заданные для вашей учетной записи, чтобы убедиться, что они подходят для ваших потребностей в использовании. См [. раздел AUTOTITLE](/ru/billing/how-tos/set-up-budgets).

Дополнительные сведения см. в разделе [Биллинг пакетов GitHub](/ru/billing/concepts/product-billing/github-packages).

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

<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the language support article accordingly. -->

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

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

| Язык                                      | Description                                         | Формат пакета  | Клиент пакета |
| ----------------------------------------- | --------------------------------------------------- | -------------- | ------------- |
| JavaScript                                | Диспетчер пакетов узла                              | `package.json` | `npm`         |
| Ruby                                      | Диспетчер пакетов RubyGems                          | `Gemfile`      | `gem`         |
| Java                                      | Средство управления и анализа проектов Apache Maven | `pom.xml`      | `mvn`         |
| Java                                      | Средство автоматизации сборки Gradle для Java       |                |               |
| `build.gradle` или `build.gradle.kts`     | `gradle`                                            |                |               |
| .NET                                      | Управление пакетами NuGet для .NET                  | `nupkg`        |               |
| `dotnet` Интерфейс командной строки (CLI) |                                                     |                |               |
| Н/П                                       | Управление контейнерами Docker                      | `Dockerfile`   | `Docker`      |

Для получения дополнительной информации о настройке клиента пакета для использования GitHub Packagesс , смотрите [Работа с реестром GitHub Packages](/ru/packages/working-with-a-github-packages-registry).

Для получения дополнительной информации о Docker и Container registry, см. [Работа с реестром контейнеров](/ru/packages/working-with-a-github-packages-registry/working-with-the-container-registry).

## Аутентификация в GitHub Packages

> \[!NOTE]
> GitHub Packages поддерживает только проверку подлинности с помощью personal access token (classic). Дополнительные сведения см. в разделе [Управление личными маркерами доступа](/ru/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

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

Можно использовать personal access token (classic) для проверки подлинности в API GitHub Packages или API GitHub . При создании personal access token (classic)можно назначить маркер различным областям в зависимости от ваших потребностей. Дополнительные сведения о областях, связанных с пакетами, для personal access token (classic), см. в разделе [Сведения о разрешениях для пакетов GitHub](/ru/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries).

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

* `GITHUB_TOKEN` для публикации пакетов, связанных с репозиторием рабочих процессов.
* personal access token (classic) с по крайней мере `read:packages` областью действия для установки пакетов, связанных с другими частными репозиториями (`GITHUB_TOKEN` можно использовать, если репозиторий предоставлен доступ на чтение к пакету. См [. раздел AUTOTITLE](/ru/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

Дополнительные сведения об `GITHUB_TOKEN` использовании в рабочих процессах см. в GitHub Actions разделе [Использование GITHUB\_TOKEN для проверки подлинности в рабочих процессах](/ru/actions/tutorials/authenticate-with-github_token#using-the-github_token-in-a-workflow).

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

Вы можете удалить пакет в GitHub пользовательском интерфейсе или через REST API. Дополнительные сведения см. в разделе \[AUTOTITLE и [Удаление и восстановление пакета](/ru/packages/learn-github-packages/deleting-and-restoring-a-package)]\(/rest/packages). Для некоторых реестров можно использовать GraphQL для удаления версии частного пакета.

С реестрами, поддерживающими детализированные разрешения, нельзя использовать API GraphQL GitHub Packages GraphQL. Реестры, поддерживающие **только** разрешения в области репозитория, и которые могут использоваться с API GraphQL, см. в разделе [Сведения о разрешениях для пакетов GitHub](/ru/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).

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

Для получения дополнительной информации смотрите [Формирование вызовов с помощью GraphQL](/ru/graphql/guides/forming-calls-with-graphql).

Вы можете настроить веб-перехватчики, чтобы подписаться на события, связанные с пакетом, например на публикацию или обновление пакета. Дополнительные сведения см. в [разделе AUTOTITLE](/ru/webhooks/webhook-events-and-payloads#package).

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

Если у вас есть обратная связь или запросы GitHub Packagesна функции, используйте [GitHub Community обсуждение](https://github.com/orgs/community/discussions/categories/packages).

Свяжитесь с нами по адресу [Портал поддержки GitHub](https://support.github.com/)GitHub Packages :

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