Пакет может наследовать свои разрешения видимости и доступа из репозитория или реестров, поддерживающих детализированные разрешения, можно задать видимость и разрешения пакета отдельно от репозитория.
Список реестров, поддерживающих детализированные разрешения, и дополнительные сведения о разрешениях для пакетов, областей, связанных с пакетами для PATs, или управлении разрешениями для рабочих процессов GitHub Actions см. в разделе Сведения о разрешениях для пакетов GitHub.
О наследовании разрешений доступа
В реестрах, поддерживающих детализированные разрешения, пакеты относятся к личная учетная запись или организации. В этих реестрах можно опубликовать пакет без связывания пакета с репозиторием, а затем определить, кто может получить доступ к пакету, задав разрешения доступа и видимость в параметрах пакета.
По умолчанию при публикации пакета, связанного с репозиторием, пакет автоматически наследует разрешения доступа (но не видимость) связанного репозитория. Например, пользователь, имеющий доступ на чтение к связанному репозиторию, также будет иметь доступ на чтение к пакету. Когда пакет автоматически наследует разрешения доступа, рабочие процессы GitHub Actions в связанном репозитории также автоматически получают доступ к пакету.
Пакет наследует только разрешения доступа связанного репозитория автоматически, если вы связываете репозиторий с пакетом перед публикацией пакета, например путем добавления org.opencontainers.image.source метки Docker в образ контейнера. Если вы подключаете опубликованный пакет к репозиторию на странице параметров пакета, пакет будет хранить свои существующие разрешения доступа и не наследует разрешения доступа репозитория, если вы явно не выберете этот параметр. Кроме того, организации могут отключить автоматическое наследование разрешений доступа для всех новых пакетов, на которые распространяется их организация. Дополнительные сведения см. в разделе "Отключение автоматического наследования разрешений доступа" в организации ниже.
Если пакет наследует разрешения из репозитория, чтобы предоставить или удалить доступ к пакету, необходимо настроить параметры разрешений связанного репозитория. Если вы хотите задать параметры доступа пакета отдельно от репозитория, связанного с пакетом, необходимо удалить унаследованные разрешения из пакета. Дополнительные сведения см. в разделе "Выбор того, наследует ли пакет разрешения из репозитория ниже".
Если вы публикуете пакет в реестре, который поддерживает только разрешения на уровне репозитория, пакет всегда связан с репозиторием и всегда наследует разрешения связанного репозитория.
Настройка разрешений видимости и доступа для пакетов
Если пакет принадлежит реестру, который поддерживает детализированные разрешения, любой пользователь с разрешениями администратора для пакета может задать пакет частным или общедоступным, и может предоставить разрешения на доступ для пакета, которые отделены от разрешений, заданных на уровнях организации и репозитория. Список реестров, поддерживающих детализированные разрешения, см. в разделе Сведения о разрешениях для пакетов 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 | Может отправлять и скачивать этот пакет. Может считывать и записывать метаданные пакета. |
| Административный | Может отправлять, скачивать, удалять этот пакет и управлять им. Может считывать и записывать метаданные пакета. Может предоставлять права доступа к пакету. |
Примечание.
Возможность удаления и восстановления пакетов с помощью REST API GitHub Actions в настоящее время находится в public preview и подлежит изменению.
Настройка доступа к пакетам для личная учетная запись
Если у вас есть разрешения администратора на пакет, который ограничен личная учетная запись, вы можете назначить роли чтения, записи или администратора другим пользователям. Дополнительные сведения об этих ролях разрешений см. в разделе о наследовании разрешений доступа.
Если пакет является частным или внутренним и ограничен организацией, вы можете предоставить доступ только другим членам организации или командам.
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В разделе "Управление доступом" или "Унаследованный доступ" нажмите кнопку "Пригласить команды" или "Люди " и введите имя, имя пользователя или электронную почту пользователя, которому вы хотите предоставить доступ. Teams не может быть предоставлен доступ к пакету, который ограничен личная учетная запись.
-
Рядом с именем пользователя или команды используйте раскрывающееся меню роли , чтобы выбрать нужный уровень разрешений.
Выбранные пользователи автоматически получают доступ, и им не нужно сначала принимать приглашение.
Настройка доступа к пакетам для организации
Если у вас есть разрешения администратора на пакет, который распространяется на организацию, можно назначить роли чтения, записи или администратора другим пользователям и командам. Дополнительные сведения об этих ролях разрешений см. в разделе о наследовании разрешений доступа.
Если пакет является частным или внутренним и ограничен организацией, вы можете предоставить доступ только другим членам организации или командам.
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В разделе "Управление доступом" или "Унаследованный доступ" нажмите кнопку "Пригласить команды" или "Люди " и введите имя, имя пользователя или электронную почту пользователя, которому вы хотите предоставить доступ. Вы также можете ввести имя команды из организации, чтобы предоставить всем участникам команды доступ.
-
Рядом с именем пользователя или команды используйте раскрывающееся меню роли , чтобы выбрать нужный уровень разрешений.
Выбранные пользователи или команды автоматически получают доступ, и им не нужно сначала принимать приглашение.
Выбор того, наследует ли пакет разрешения из репозитория
По умолчанию при публикации пакета, связанного с репозиторием, пакет наследует разрешения доступа связанного репозитория. Мы рекомендуем разрешить пакетам наследовать их разрешения из репозитория, так как это упрощает процесс управления доступом к пакету.
Если пакет наследует разрешения из репозитория, чтобы предоставить или удалить доступ к пакету, необходимо настроить разрешения связанного репозитория.
Если вы хотите настроить параметры доступа пакета на детальном уровне отдельно от связанного репозитория, необходимо удалить унаследованные разрешения из пакета.
Примечание.
Если изменить способ получения пакета разрешений на доступ, все существующие разрешения для пакета перезаписываются.
Выбор параметра наследования пакетов, ограниченных личная учетная запись
-
В GitHub перейдите на главную страницу личной учетной записи.
-
В правом верхнем углу GitHubщелкните рисунок профиля, а затем щелкните профиль.

-
На странице профиля в заголовке щелкните вкладку "Пакеты" Packages .
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
Чтобы выбрать, наследует ли пакет разрешения на доступ из связанного репозитория, в разделе "Управление доступом" или "Унаследованный доступ" выберите или отмените выбор доступа из репозитория (рекомендуется).
Примечание.
Имя этого раздела изменяется в зависимости от того, наследует ли пакет разрешения из репозитория.
Выбор параметра наследования пакетов, ограниченных для организации
Совет
Если вы являетесь владельцем организации, вы можете запретить автоматически наследовать разрешения от связанного репозитория всех новых пакетов, наследуемых в организации. Дополнительные сведения см. в разделе "Отключение автоматического наследования разрешений доступа" в организации ниже.
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
Чтобы выбрать, наследует ли пакет разрешения на доступ из связанного репозитория, в разделе "Управление доступом" или "Унаследованный доступ" выберите или отмените выбор доступа из репозитория (рекомендуется).
Примечание.
Имя этого раздела изменяется в зависимости от того, наследует ли пакет разрешения из репозитория.
Отключение автоматического наследования разрешений доступа в организации
По умолчанию при публикации пакета, связанного с репозиторием, пакет автоматически наследует разрешения доступа связанного репозитория. Как владелец организации, вы можете отключить автоматическое наследование для всех пакетов, ограниченных вашей организацией.
Если отключить автоматическое наследование разрешений на доступ, новые пакеты в вашей организации не будут автоматически наследовать разрешения связанного репозитория. Однако любой пользователь с разрешениями администратора на пакет в вашей организации сможет включить или отключить наследование разрешений для этого пакета.
-
В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.
-
Выберите организацию, кликнув по ней.
-
Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

-
На боковой панели в разделе "Код, планирование и автоматизация" щелкните Packages.
-
В разделе "Параметры пакета по умолчанию" отмените выбор доступа из исходного репозитория.
-
Нажмите кнопку Сохранить.
Обеспечение доступа рабочего процесса к пакету
Для пакетов, ограниченных личная учетная запись или организацией, для обеспечения доступа к пакету рабочего процесса GitHub Actions необходимо предоставить явный доступ к репозиторию, в котором хранится рабочий процесс.
Указанный репозиторий не обязательно должен быть репозиторием, в котором хранится исходный код пакета. Вы можете предоставить нескольким репозиториям доступ рабочего процесса к пакету.
При публикации пакета, связанного с репозиторием, рабочие процессы GitHub Actions в связанном репозитории автоматически получают доступ к пакету, если ваша организация не отключила автоматическое наследование разрешений доступа. Дополнительные сведения см. в разделе о наследовании разрешений доступа выше.
Примечание.
- Синхронизация пакета с репозиторием с помощью кнопки "Добавить репозиторий" в разделе "Управление доступом к** действиям" в параметрах пакета отличается от подключения пакета к репозиторию. Дополнительные сведения о связывании репозитория с пакетом см. в разделе Подключение репозитория к пакету.
- Вы можете ограничить разрешения для заданий рабочих процессов с помощью
permissionsключа иpackagesобласти. Дополнительные сведения см. в разделе Использование GITHUB_TOKEN для проверки подлинности в рабочих процессах. - Если вы предоставляете общедоступный репозиторий доступ к частным пакетам, вилки репозитория могут иметь доступ к частным пакетам.
Доступ к GitHub Actions для пакетов, ограниченных личная учетная запись
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
Чтобы рабочий процесс получил доступ к пакету, необходимо добавить репозиторий, в котором хранится рабочий процесс. В разделе "Управление доступом к действиям" click Add репозиторий и поиск репозитория, который требуется добавить.

-
Использование Раскрывающееся меню роли, чтобы выбрать уровень доступа по умолчанию, который требуется для пакета репозитория.
Дополнительные сведения о настройке доступа к пакету см. в статье Настройка доступа к пакетам для личная учетная запись.
Доступ к GitHub Actions для пакетов, ограниченных организациями
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В разделе "Управление доступом к действиям" click Add репозиторий и поиск репозитория, который требуется добавить.

-
Использование Раскрывающееся меню роли, чтобы выбрать уровень доступа по умолчанию, который требуется для пакета репозитория.
Дополнительные сведения о настройке доступа к пакету см. в статье "Настройка доступа к пакетам для организации".
Обеспечение доступа к пакету GitHub Codespaces
По умолчанию пространство кода может легко получить доступ к определенным пакетам в реестрах, которые поддерживают детализированные разрешения, такие как пакеты, опубликованные в том же репозитории с выбранным параметром "Наследовать доступ ". Список реестров GitHub Packages с поддержкой подробных разрешений и простого доступа GitHub Codespaces см. в разделе Сведения о разрешениях для пакетов GitHub.
В противном случае, чтобы обеспечить codespace доступ к пакету, необходимо предоставить доступ репозиторию, в котором запускается codespace.
Указанный репозиторий не обязательно должен быть репозиторием, в котором хранится исходный код пакета. Вы можете предоставлять доступ к пакету кодовым пространствам codespace в нескольких репозиториях.
Выбрав пакет, к которому вы хотите предоставить общий доступ кодовым пространствам codespace в репозитории, вы можете предоставить доступ этому репозиторию.
-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В разделе "Управление доступом Codespaces"выберите Добавить репозиторий.

-
Найдите репозиторий, который вы хотите добавить.
-
Повторите эти действия для всех дополнительных репозиториев, которым вы хотите разрешить доступ.
-
Если пространства кода для репозитория больше не требуют доступа к пакету, можно удалить доступ. Щелкните .

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

-
В нижней части страницы в разделе "Зона опасности" нажмите кнопку "Изменить видимость".
-
Выберите параметр видимости:
-
Чтобы сделать пакет видимым для любого пользователя, выберите "Общедоступный".
Предупреждение
После того как вы сделаете пакет общедоступным, его нельзя сделать закрытым снова.
-
Чтобы сделать пакет видимым для пользовательского выбора людей, выберите "Приватный".
-
-
Чтобы подтвердить, введите имя пакета, а затем щелкните "Последствия", измените видимость пакета.
Видимость создания пакета для членов организации
Для реестров, поддерживающих детализированные разрешения, можно выбрать видимость пакетов, которые члены организации могут публиковать по умолчанию. Список этих реестров см. в разделе Сведения о разрешениях для пакетов GitHub.
-
В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.
-
Выберите организацию, кликнув по ней.
-
Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

-
В левой части окна щелкните Пакеты.
-
В разделе "Создание пакета" выберите, следует ли включить создание общедоступных, частных или внутренних пакетов.
-
Чтобы разрешить членам организации создавать общедоступные пакеты, щелкните "Общедоступный".
-
Чтобы разрешить членам организации создавать частные пакеты, которые видны только другим членам организации, нажмите кнопку "Приватный". Вы можете дополнительно настроить видимость частных пакетов.
-
Чтобы разрешить членам организации создавать внутренние пакеты, видимые для всех участников организации, нажмите кнопку "Внутренний". Если организация принадлежит предприятиям, пакеты будут видны всем участникам предприятия.
Примечание.
Maven и Gradle в настоящее время поддерживаются только для видимости общедоступного и частного репозитория. Видимость внутреннего репозитория не поддерживается.
-
Настройка видимости пакетов для организации
При первой публикации пакета видимость по умолчанию является закрытой, и только вы можете видеть этот пакет. Вы можете предоставить пользователям или командам разные роли доступа для пакета с помощью параметров доступа. Сделав пакет общедоступным, вы не сможете снова сделать его частным.
-
В GitHub перейдите на главную страницу вашей организации.
-
Под именем организации щелкните вкладку "Пакет" aria-hidden="true" aria-label="package" %} "Package ".

-
Найдите и выберите имя пакета, который требуется управлять.
-
На целевой странице пакета справа щелкните Параметры пакета.

-
В нижней части страницы в разделе "Зона опасности" нажмите кнопку "Изменить видимость " и выберите параметр видимости:
-
Чтобы сделать пакет видимым для любого пользователя, нажмите кнопку "Общедоступный".
Предупреждение
После того как вы сделаете пакет общедоступным, его нельзя сделать закрытым снова.
-
Чтобы сделать пакет видимым для пользовательского выбора пользователей в организации, нажмите кнопку Private.
-
Чтобы сделать пакет видимым для всех участников организации, нажмите кнопку "Внутренний". Если организация принадлежит предприятиям, пакеты будут видны всем участникам предприятия.
-