# Введение в 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 Packages пакетов см. [Работа с реестром GitHub Packages](/ru/enterprise-server@3.22/packages/working-with-a-github-packages-registry).

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

Для получения дополнительной информации о конфигурации на GitHub PackagesGitHub Enterprise Serverсм. [Начало работы с пакетами GitHub для вашего предприятия](/ru/enterprise-server@3.22/admin/configuring-packages/getting-started-with-github-packages-for-your-enterprise).

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

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

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

Пакеты можно опубликовать в общедоступный репозиторий (общедоступные пакеты), чтобы предоставить общий доступ к все пользователи предприятия, или в частном репозитории (частные пакеты), чтобы поделиться с коллегами или организацией.

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

<!-- 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`      |

> \[!NOTE]
> При включении реестра Docker настоятельно рекомендуется также включить изоляцию поддомена. Дополнительные сведения см. в разделе [Включение изоляции поддомена](/ru/enterprise-server@3.22/admin/configuring-settings/hardening-security-for-your-enterprise/enabling-subdomain-isolation).

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

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

> \[!NOTE]
> GitHub Packages поддерживает только проверку подлинности с помощью personal access token (classic). Дополнительные сведения см. в разделе [Управление личными маркерами доступа](/ru/enterprise-server@3.22/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/enterprise-server@3.22/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/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

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

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

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

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

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

Для получения дополнительной информации смотрите [Удаление и восстановление пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package) и [Формирование вызовов с помощью GraphQL](/ru/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql).

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

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

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