Разрешения для пакетов могут быть ограничены пользователем или организацией или репозиторием.
Настроенные разрешения для пакетов с областью пользователя или организации
Пакеты с подробными разрешениями относятся к личная учетная запись или организации. Вы можете изменять управление доступом и видимость пакета отдельно от репозитория, к которому он подключен (или связан).
Следующие реестры GitHub Packages поддерживают детализированные разрешения.
- Container registry
- Реестр npm
- Реестр NuGet
- Реестр RubyGems
Разрешения для пакетов на уровне репозитория
Пакет с областью репозитория наследует разрешения и видимость репозитория, в котором публикуется пакет. Чтобы найти пакет с областью репозитория, перейдите на главную страницу репозитория и щелкните ссылку Пакеты справа на странице. Дополнительные сведения см. в разделе "Подключение репозитория к пакету".
Следующие реестры GitHub Packages поддерживают только разрешения на уровне репозитория.
- Реестр Apache Maven
- Реестр Gradle
Для другие реестры, можно разрешить доступ к пакетам для пользователя или организации или связанного с репозиторием.
Разрешения на видимость и доступ для пакетов
Если пакет принадлежит реестру, который поддерживает детализированные разрешения, любой пользователь с разрешениями администратора для пакета может задать пакет частным или общедоступным, и может предоставить разрешения на доступ для пакета, которые отделены от разрешений, заданных на уровнях организации и репозитория. Список реестров, поддерживающих детализированные разрешения, см. в разделе "Сведения о разрешениях для пакетов GitHub".
Для извлечения пакета в большинстве реестров необходимо пройти проверку подлинности с помощью personal access token или GITHUB_TOKEN
независимо от того, является ли пакет общедоступным или частным. Однако в Container registryобщедоступные пакеты разрешают анонимный доступ и могут быть извлечены без проверки подлинности или входа через CLI.
Примечание. Если вы публикуете пакет, связанный с репозиторием, пакет наследует его разрешения от связанного репозитория по умолчанию. Чтобы получить доступ к параметрам детализированных разрешений пакета, необходимо удалить унаследованные разрешения пакета. Если вы являетесь владельцем организации, вы можете отключить автоматическое наследование разрешений для всех новых пакетов, область в вашей организации. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Настройка управления доступом и видимости пакета](/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility#disabling-automatic-inheritance-of-access-permissions-in-an-organization)".
При публикации пакета вы автоматически получаете разрешения администратора для пакета. При публикации пакета в организации любой пользователь с owner
ролью в организации также получает разрешения администратора для пакета.
Для пакетов, область личная учетная запись, вы можете предоставить любому пользователю роль доступа. Для пакетов, область в организацию, вы можете предоставить любому пользователю или команде в организации роль доступа.
Если вы используете рабочий процесс GitHub Actions для управления пакетами, вы можете предоставить роль доступа к репозиторию, рабочий процесс хранится в с помощью кнопки "Добавить репозиторий" в разделе "Управление доступом к** действиям" в параметрах пакета. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Разрешение | Описание доступа |
---|---|
Читать | Может скачивать пакет. Может считывать метаданные пакета. |
Write | Может отправлять и скачивать этот пакет. Может считывать и записывать метаданные пакета. |
Администрирование | Может отправлять, скачивать, удалять этот пакет и управлять им. Может считывать и записывать метаданные пакета. Может предоставлять права доступа к пакету. |
Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в public preview и подлежит изменению.
Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.
Сведения об областях и разрешениях для реестров пакетов
GitHub Packages поддерживает проверку подлинности только с помощью personal access token (classic). Дополнительные сведения см. в разделе Управление личными маркерами доступа.
Чтобы использовать или управлять пакетом, размещенным в реестре пакетов, необходимо использовать personal access token (classic) с соответствующей областью, а личная учетная запись должны иметь соответствующие разрешения.
Например:
- Чтобы скачать и установить пакеты из репозитория, у ваших personal access token (classic) должна быть
read:packages
область, а учетная запись пользователя должна иметь разрешение на чтение. - Чтобы удалить пакет на GitHub Enterprise Cloud, данные personal access token (classic) должны иметь по крайней мере область
delete:packages
иread:packages
область. Дополнительные сведения см. в разделе Удаление и восстановление пакета.
Scope | Description | Требуемое разрешение |
---|---|---|
read:packages | Скачивание и установка пакетов из GitHub Packages | чтение |
write:packages | Отправка и публикация пакетов в GitHub Packages | запись |
delete:packages | Удаление пакетов из GitHub Packages | администрирование |
Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в public preview и подлежит изменению.
При создании рабочего процесса GitHub Actions можно использовать GITHUB_TOKEN
для публикации, установки, удаления и восстановления пакетов в GitHub Packages без необходимости хранить и управлять данными personal access token.
Дополнительные сведения см. в следующих разделах:
- "Настройка управления доступом и видимости пакета"
- "Публикация и установка пакета с помощью GitHub Actions"
- "Управление личными маркерами доступа"
- "Области для приложений OAuth"
Сведения о передаче репозиториев
Репозиторий можно перенести в другую личная учетная запись или организацию. Дополнительные сведения см. в разделе Передача репозитория.
При передаче репозитория GitHub может передавать пакеты, связанные с репозиторием, в зависимости от реестра, к которому принадлежат пакеты.
- Для реестров, поддерживающих детализированные разрешения, пакеты относятся к личная учетная запись или организации, а учетная запись, связанная с пакетом, не изменяется при передаче репозитория. Если вы связали пакет с репозиторием, ссылка удаляется при передаче репозитория другому пользователю. Все codespaces или GitHub Actions рабочие процессы, связанные с репозиторием, потеряют доступ к пакету. Если пакет наследовал разрешения на доступ из связанного репозитория, пользователи потеряют доступ к пакету. Список этих реестров см. в разделе "Подробные разрешения для пакетов с областью действия пользователя или организации" выше.
- Для реестров, поддерживающих только разрешения на уровне репозитория, пакеты публикуются непосредственно в репозиториях, а GitHub передает пакеты, связанные с репозиторием в рамках передачи репозитория. Все оплачиваемое использование, связанное с пакетами, будут выставлены счета новому владельцу репозитория. Если предыдущий владелец репозитория удален в качестве участника совместной работы в репозитории, он больше не сможет получить доступ к пакетам, связанным с репозиторием. Список этих реестров см. в разделе "Разрешения для пакетов с областью действия репозитория" выше.
Поддержка доступа к пакетам в рабочих процессах GitHub Actions
Чтобы рабочие процессы сохраняли доступ к пакетам, убедитесь, что вы используете правильный маркер доступа в рабочем процессе и включили доступ GitHub Actions к пакету.
Дополнительные концептуальные сведения о GitHub Actions или примерах использования пакетов в рабочих процессах см. в разделе "Управление пакетами GitHub с помощью рабочих процессов GitHub Actions".
Маркеры доступа
Примечание. Возможность для рабочих процессов GitHub Actions для удаления и восстановления пакетов с помощью REST API в настоящее время находится в public preview и подлежит изменению.
- Для публикации, установки, удаления и восстановления пакетов, связанных с репозиторием рабочих процессов, используйте
GITHUB_TOKEN
. - Чтобы установить пакеты, связанные с другими частными репозиториями, которые
GITHUB_TOKEN
не могут получить доступ, используйте personal access token (classic)
Дополнительные сведения об GITHUB_TOKEN
использовании в рабочих процессах GitHub Actions см. в разделе "Автоматическая проверка подлинности токенов".
Доступ к GitHub Actions для пакетов с подробными разрешениями
Чтобы рабочие процессы имели доступ к пакетам, хранящимся в реестрах, поддерживающих детализированные разрешения, необходимо предоставить GitHub Actions доступ к репозиториям, где выполняется рабочий процесс. Этот параметр можно найти на странице параметров пакета. Дополнительные сведения см. в разделе Настройка управления доступом и видимости пакета.