Skip to main content

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

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

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

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

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

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

  • Container registry

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

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

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

  • Реестр Docker (docker.pkg.github.com) - Реестр npm
  • Реестр Apache Maven
  • Реестр Gradle - Реестр NuGet - Реестр RubyGems

Для { % данных variables.product.prodname_container_registry %}, можно разрешить доступ к пакетам для пользователя или организации или связанного с репозиторием. Сведения о миграции в Container registryсм. в разделе "Миграция в реестр контейнеров из реестра Docker".

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

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

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

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

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

Если вы используете рабочий процесс GitHub Actions для управления пакетами, вы можете предоставить роль доступа к репозиторию, рабочий процесс хранится в с **помощью параметра меню "Действия доступа". Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

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

Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в beta и подлежит изменению.

Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.

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

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

Чтобы использовать или управлять пакетом, размещенным в реестре пакетов, необходимо использовать personal access token (classic) с соответствующей областью, а личная учетная запись должны иметь соответствующие разрешения.

Например:

  • Чтобы скачать и установить пакеты из репозитория, у ваших personal access token (classic) должна быть read:packages область, а учетная запись пользователя должна иметь разрешение на чтение.
  • Чтобы удалить пакет на GitHub Enterprise Server, данные personal access token (classic) должны иметь по крайней мере область delete:packages и read:packages область. Область repo также необходима для пакетов с областью репозитория. Дополнительные сведения см. в разделе Удаление и восстановление пакета.
ScopeDescriptionТребуемое разрешение
read:packagesСкачивание и установка пакетов из GitHub Packagesчтение
write:packagesОтправка и публикация пакетов в GitHub Packagesзапись
delete:packagesУдаление пакетов из GitHub Packagesадминистрирование
repoОтправка и удаление пакетов (вместе с write:packages или delete:packages)на чтение или администратора

Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в beta и подлежит изменению.

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

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

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

Репозиторий можно перенести в другую личная учетная запись или организацию. Дополнительные сведения см. в разделе Передача репозитория.

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

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

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

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

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

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

Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в beta и подлежит изменению.

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

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