Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

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

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

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

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

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

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

  • Container registry

Разрешения для пакетов с областью действия репозитория

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

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

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

Для Container registry можно разрешить ограничить область пакетов пользователем или организацией или связать с репозиторием. Сведения о миграции в Container registry см. в разделе Миграция в реестр контейнеров из реестра Docker.

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

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

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

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