# Сведения о разрешениях для пакетов GitHub

Узнайте о том, как управлять разрешениями для пакетов.

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

## Настроенные разрешения для пакетов с областью пользователя или организации

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

GitHub Packages Следующие реестры поддерживают детализированные разрешения.

* Container registry

## Разрешения для пакетов на уровне репозитория

Пакет с областью репозитория наследует разрешения и видимость репозитория, в котором публикуется пакет. Чтобы найти пакет с областью репозитория, перейдите на главную страницу репозитория и щелкните ссылку **Пакеты** справа на странице.

GitHub Packages Следующие реестры поддерживают **только** разрешения на уровне репозитория.

* Реестр Docker (`docker.pkg.github.com`)
* Реестр npm <!-- markdownlint-disable-line GHD034 -->
* Реестр Apache Maven
* Реестр Gradle
* Реестр NuGet
* Реестр RubyGems

Container registryДля  можно разрешить пакеты быть ограничены пользователем или организацией или связаны с репозиторием.
Сведения о миграции в приложение Container registryсм. в разделе [Миграция в реестр контейнеров из реестра Docker](/ru/enterprise-server@3.22/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry).

## Разрешения на видимость и доступ для пакетов

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

Для извлечения пакета в большинстве реестров необходимо пройти проверку подлинности с помощью personal access token или `GITHUB_TOKEN`независимо от того, является ли пакет общедоступным или частным. Однако в Container registryобщедоступные пакеты разрешают анонимный доступ и могут быть извлечены без проверки подлинности или входа через CLI.

При публикации пакета вы автоматически получаете разрешения администратора для пакета. При публикации пакета в организации любой пользователь с `owner` ролью в организации также получает разрешения администратора для пакета.

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

Если вы используете рабочий процесс GitHub Actions для управления пакетами, вы можете предоставить роль доступа к репозиторию, рабочий процесс хранится в с \*\*помощью параметра меню "Действия доступа". Дополнительные сведения см. в разделе [Настройка управления доступом и видимости пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#ensuring-workflow-access-to-your-package).

| Разрешение       | Описание доступа                                                                                                                                                      |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Читать           | Может скачивать пакет. <br> Может считывать метаданные пакета.                                                                                                        |
| Write            | Может отправлять и скачивать этот пакет. <br> Может считывать и записывать метаданные пакета.                                                                         |
| Административный | Может отправлять, скачивать, удалять этот пакет и управлять им. <br> Может считывать и записывать метаданные пакета. <br> Может предоставлять права доступа к пакету. |

> \[!NOTE]
> Возможность удаления и восстановления пакетов с помощью REST API GitHub Actions в настоящее время находится в Публичный предварительный просмотр и подлежит изменению.

Дополнительные сведения см. в разделе [Настройка управления доступом и видимости пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

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

> \[!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) с соответствующей областью, а личная учетная запись должна иметь соответствующие разрешения.

Например:

* Чтобы скачать и установить пакеты из репозитория, у вас personal access token (classic) должна быть `read:packages` область, а учетная запись пользователя должна иметь разрешение на чтение.
* Чтобы удалить пакет, необходимо, по крайней мере, personal access token (classic) иметь `delete:packages` область и `read:packages` область. Дополнительные сведения см. в разделе [Удаление и восстановление пакета](/ru/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package).

| Scope             | Description                                       | Требуемое разрешение |
| ----------------- | ------------------------------------------------- | -------------------- |
| `read:packages`   | Скачивание и установка пакетов из GitHub Packages | чтение               |
| `write:packages`  | Отправка и публикация пакетов в GitHub Packages   | запись               |
| `delete:packages` | Удаление пакетов из GitHub Packages               | администрирование    |

> \[!NOTE]
> Возможность удаления и восстановления пакетов с помощью REST API GitHub Actions в настоящее время находится в Публичный предварительный просмотр и подлежит изменению.

При создании GitHub Actions рабочего процесса можно использовать `GITHUB_TOKEN` для публикации, установки, удаления и восстановления пакетов GitHub Packages без необходимости хранить и управлять ими personal access token.

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

* [Публикация и установка пакета с помощью GitHub Actions](/ru/enterprise-server@3.22/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions)
* [Управление личными маркерами доступа](/ru/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
* [Области для приложений OAuth](/ru/enterprise-server@3.22/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes)

## Сведения о передаче репозиториев

Репозиторий можно перенести в другую личная учетная запись или организацию. Дополнительные сведения см. в разделе [Передача репозитория](/ru/enterprise-server@3.22/repositories/creating-and-managing-repositories/transferring-a-repository).

При передаче репозитория может передавать пакеты, GitHub связанные с репозиторием, в зависимости от реестра, к которым относятся пакеты.

* Для реестров, поддерживающих детализированные разрешения, пакеты относятся к личная учетная запись или организации, а учетная запись, связанная с пакетом, не изменяется при передаче репозитория. Если вы связали пакет с репозиторием, ссылка удаляется при передаче репозитория другому пользователю. Все GitHub Actions рабочие процессы, связанные с репозиторием, потеряют доступ к пакету. Если пакет наследовал разрешения на доступ из связанного репозитория, пользователи потеряют доступ к пакету. Список этих реестров см. в разделе ["Подробные разрешения" для пакетов](#granular-permissions-for-userorganization-scoped-packages) с областью действия пользователя или организации выше.
* Для реестров, поддерживающих только разрешения в области репозитория, пакеты публикуются непосредственно в репозиториях и GitHub передают пакеты, связанные с репозиторием в рамках передачи репозитория. Все оплачиваемое использование, связанное с пакетами, будут выставлены счета новому владельцу репозитория. Если предыдущий владелец репозитория удален в качестве участника совместной работы в репозитории, он больше не сможет получить доступ к пакетам, связанным с репозиторием. Список этих реестров см. в разделе ["Разрешения" для пакетов](#permissions-for-repository-scoped-packages) с областью репозитория выше.

## Обслуживание доступа к пакетам в GitHub Actions рабочих процессах

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

Дополнительные концептуальные сведения об GitHub Actions использовании пакетов в рабочих процессах см. в разделе [Управление пакетами GitHub с помощью рабочих процессов GitHub Actions](/ru/enterprise-server@3.22/packages/managing-github-packages-using-github-actions-workflows).

### Маркеры доступа

> \[!NOTE]
> Возможность удаления и восстановления пакетов с помощью REST API GitHub Actions в настоящее время находится в Публичный предварительный просмотр и подлежит изменению.

* Для публикации, установки, удаления и восстановления пакетов, связанных с репозиторием рабочих процессов, используйте `GITHUB_TOKEN`.
* Чтобы установить пакеты, связанные с другими частными репозиториями, которые `GITHUB_TOKEN` не могут получить доступ, используйте personal access token (classic)

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