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

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

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

GitHub Packages доступно с GitHub Free, GitHub Pro, GitHub Free для организаций, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server версии 3.0 или более новой и GitHub AE.
GitHub Packages недоступен для частных репозиториев, принадлежащих учетным записям, которые используют устаревшие планы для каждого репозитория. Кроме того, учетные записи, использующие устаревшие планы для каждого репозитория, не могут получить доступ к Container registry, так как эти учетные записи оплачиваются по репозиториям. Дополнительные сведения см. в разделе Продукты GitHub.

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

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

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

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

  • Container registry - npm registry - реестр NuGet - реестр RubyGems

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

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

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

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

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

Видимость и права доступа для образов контейнеров

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

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

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

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

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

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

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

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

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

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

Например:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Доступ GitHub Actions для образов контейнера

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