Разрешения для пакетов могут быть ограничены пользователем, организацией или репозиторием.
Настроенные разрешения для пакетов с областью пользователя или организации
Пакеты с настроенными разрешениями относятся к личной учетной записи пользователя или организации. Вы можете изменять управление доступом и видимость пакета отдельно от репозитория, к которому он подключен (или связан).
Следующие реестры 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 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
- "Создание 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 к репозиториям, в которых выполняется рабочий процесс. Этот параметр можно найти на странице параметров пакета. Дополнительные сведения см. в разделе Обеспечение доступа рабочего процесса к пакету.