Разрешения для пакетов могут быть ограничены пользователем, организацией или репозиторием.
Настроенные разрешения для пакетов с областью пользователя или организации
Пакеты с детализированными разрешениями относятся к личной учетной записи или организации. Вы можете изменять управление доступом и видимость пакета отдельно от репозитория, к которому он подключен (или связан).
Следующие реестры GitHub Packages поддерживают детализированные разрешения.
- Container registry - npm registry - реестр NuGet - реестр RubyGems
Разрешения для пакетов с областью действия репозитория
Пакет с областью действия репозитория наследует разрешения и видимость репозитория, в котором публикуется пакет. Чтобы найти пакет с областью репозитория, перейдите на главную страницу репозитория и щелкните ссылку Пакеты справа на странице. Дополнительные сведения см. в разделе Подключение репозитория к пакету.
Следующие реестры GitHub Packages поддерживают только разрешения на уровне репозитория.
- Реестр Apache Maven
- Реестр Gradle
Для другие реестры можно разрешить ограничить область пакетов пользователем или организацией или связать с репозиторием.
Разрешения на видимость и доступ для пакетов
Если пакет принадлежит к реестру, который поддерживает детализированные разрешения, любой пользователь, обладающий разрешениями администратора для пакета, может установить для пакета частный или общедоступный. Общедоступные пакеты обеспечивают анонимный доступ и могут быть извлечены без проверки подлинности или входа через CLI. Список реестров, поддерживающих детализированные разрешения, см. в разделе Сведения о разрешениях для пакетов GitHub.
Любой пользователь с разрешениями администратора для пакета также может предоставить разрешения на доступ к пакету, которые отличаются от разрешений, заданных на уровне организации и репозитория.
Примечание: При публикации пакета, связанного с репозиторием, пакет по умолчанию наследует свои разрешения от связанного репозитория. Чтобы получить доступ к параметрам детализированных разрешений пакета, необходимо удалить унаследованные разрешения пакета. Если вы являетесь владельцем организации, вы можете отключить автоматическое наследование разрешений для всех новых пакетов, соответствующих вашей организации. Дополнительные сведения см. в разделах Выбор того, наследует ли пакет разрешения из репозитория и Отключение автоматического наследования разрешений доступа в организации.
При публикации пакета вы автоматически получаете разрешения администратора для пакета. Если вы публикуете пакет в организации, любой пользователь с ролью owner
в организации также получает разрешения администратора для пакета.
Для пакетов, ограниченных личной учетной записью, вы можете предоставить любому пользователю роль доступа. Для пакетов, ограниченных организацией, вы можете предоставить любому пользователю или команде в организации роль доступа.
Если вы используете рабочий процесс GitHub Actions для управления пакетами, вы можете предоставить роль доступа репозиторию, который хранится в с помощью кнопки Добавить репозиторий в разделе "Управление доступом к действиям" в параметрах пакета. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Разрешение | Описание доступа |
---|---|
Чтение | Может скачивать пакет. Может считывать метаданные пакета. |
запись | Может отправлять и скачивать этот пакет. Может считывать и записывать метаданные пакета. |
Административный | Может отправлять, скачивать и управлять этим пакетом. Может считывать и записывать метаданные пакета. Может удалять и восстанавливать пакеты. |
Примечание: Возможность для рабочих процессов GitHub Actions удалять и восстанавливать пакеты с помощью REST API в настоящее время находится в общедоступной бета-версии и может быть изменена.
Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Сведения об областях и разрешениях для реестров пакетов
GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Создание личного маркера доступа.
Чтобы использовать пакет, размещенный в реестре пакетов, или управлять им, необходимо использовать personal access token (classic) с соответствующей областью, а ваша личная учетная запись должна иметь соответствующие разрешения.
Например:
- Чтобы скачать и установить пакеты из репозитория, personal access token (classic) должен иметь
read:packages
область, а учетная запись пользователя должна иметь разрешение на чтение. - Чтобы удалить пакет в GitHub, personal access token (classic) должен иметь по крайней
delete:packages
мере область иread:packages
. Областьrepo
также необходима для пакетов с областью репозитория. Дополнительные сведения см. в разделе Удаление и восстановление пакета.
Область | Описание | Требуемое разрешение |
---|---|---|
read:packages | Скачивание и установка пакетов из GitHub Packages | read |
write:packages | Отправка и публикация пакетов в GitHub Packages | запись |
delete:packages | Удаление пакетов из GitHub Packages | admin |
repo | Отправка и удаление пакетов (вместе с write:packages или delete:packages ) | на чтение или администратора |
Примечание: Возможность для рабочих процессов GitHub Actions удалять и восстанавливать пакеты с помощью REST API в настоящее время находится в общедоступной бета-версии и может быть изменена.
При создании рабочего процесса GitHub Actions можно использовать GITHUB_TOKEN
для публикации, установки, удаления и восстановления пакетов в GitHub Packages без необходимости хранить personal access token и управлять ими.
Дополнительные сведения см. в следующих разделах:
- "Настройка управления доступом и видимости пакета"
- "Публикация и установка пакета с помощью GitHub Actions"
- "Создание личного маркера доступа"
- "Области для приложений OAuth"
Сведения о передаче репозиториев
Репозиторий можно перенести в другую личную учетную запись или организацию. Дополнительные сведения см. в разделе Передача репозитория.
При передаче репозитория 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 доступ к репозиториям, в которых выполняется рабочий процесс. Этот параметр можно найти на странице параметров пакета. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.