具有精细权限的包仅限于个人用户或组织帐户。 您可以从与包相连(或链接)的仓库分别更改包的访问控制和可见性。
某些注册表仅支持存储库范围内的权限。 有关这些注册表的列表,请参阅“关于 GitHub Packages 的权限”。
有关包的权限、PAT 的包相关范围或管理操作工作流的权限的详细信息,请参阅“关于 GitHub 包的权限”。
容器映像的可见性和访问权限
如果您对容器映像具有管理员权限,可以将容器映像的访问权限设置为私有或公有。 公有映像允许匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。
作为管理员,您还可以授予容器映像的访问权限,该权限与在组织和仓库级别设置的权限不同。
对于个人帐户发布和拥有的容器映像,你可以为任何人提供访问角色。 对于组织发布和拥有的容器映像,您可以为组织中的任何人或团队授予访问角色。
权限 | 访问描述 |
---|---|
读取 | 可以下载包。 可以读取包元数据。 |
写入 | 可以上传和下载此包。 可以读取和写入包元数据。 |
管理员 | 可以上传、下载、删除和管理此包。 可以读取和写入包元数据。 可以授予包权限。 |
为个人帐户配置对容器映像的访问
如果你对个人帐户拥有的容器映像具有管理员权限,你可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅“容器映像的可见性和访问权限”。
如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。
- 搜索并选择您的包。
- 在包登录页的右上角,单击“包设置”。
- 在软件包设置页面上,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 不能授予团队访问个人帐户拥有的容器映像。
- 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。
所选用户将自动被授予访问权限,不需要先接受邀请。
为企业配置对容器映像的访问
如果您对组织拥有的容器映像具有管理员权限,您可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅“容器映像的可见性和访问权限”。
如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。
- 在 GitHub 上,导航到组织的主页面。
- 在组织名称下,单击“包”。
3. 搜索并选择您的包。
- 在包登录页的右上角,单击“包设置”。
- 在软件包设置页面上,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 您还可以从组织输入团队名称,以允许所有团队成员访问。
- 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。
所选用户或团队将自动被授予访问权限,不需要先接受邀请。
从仓库继承容器映像的访问权限
要通过 GitHub Actions 工作流程简化包管理,您可以让容器映像默认继承仓库的访问权限。
如果您继承了存储包工作流程的仓库的访问权限,则可以通过仓库的权限调整对包的访问权限。
仓库一旦同步,您就无法访问包的精细访问设置。 要通过精细的包访问设置自定义包的权限,您必须先删除同步的仓库。
- 在 GitHub 上,导航到组织的主页面。
- 在组织名称下,单击“包”。
3. 搜索并选择您的包。
- 在包登录页的右上角,单击“包设置”。
- 在“存储库源”下,选择“从存储库继承访问权限(推荐)”。
确保工作流程访问您的包
为确保 GitHub Actions 工作流程能访问您的包,您必须授予存储工作流程的仓库以明确的访问权限。
指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库工作流程对包的访问权限。
注意:通过“操作访问”菜单选项同步容器映像与存储库不同于将容器连接到存储库。 有关将存储库链接到容器的详细信息,请参阅“将存储库连接到包”。
用户帐户拥有的容器映像的 GitHub Actions 访问权限
- 搜索并选择您的包。
- 在包登录页的右上角,单击“包设置”。
- 在左侧边栏中,单击“操作访问”。
- 为确保工作流程有权访问容器包,您必须添加存储工作流程的仓库。 单击“添加存储库”并搜索要添加的存储库。
- (使用“role(角色)”下拉菜单,选择您希望仓库访问您的容器映像所必须拥有的默认访问权限。
若要进一步自定义对容器映像的访问,请参阅“配置对个人帐户的容器映像的访问”。
组织拥有的容器映像的 GitHub Actions 访问权限
- 在 GitHub 上,导航到组织的主页面。
- 在组织名称下,单击“包”。
3. 搜索并选择您的包。
- 在包登录页的右上角,单击“包设置”。
- 在左侧边栏中,单击“操作访问”。
- 单击“添加存储库”并搜索要添加的存储库。
- 使用“role(角色)”下拉菜单,选择您希望仓库成员访问您的容器映像所必须拥有的默认访问权限。 外部协作者将不包括在内。
若要进一步自定义对容器映像的访问,请参阅“配置对组织的容器映像的访问”。
确保 GitHub Codespaces 具有包的访问权限
默认情况下,codespace 可以无缝访问支持精细权限的注册表中的某些包,例如在选择了“继承访问”选项的同一存储库中发布的包。 有关支持精细权限和无缝 GitHub Codespaces 访问的 GitHub Packages 注册表的列表,请参阅“关于 GitHub Packages 的权限”。
否则,为了确保代码空间能够访问您的软件包,必须授予对启动代码空间的仓库的访问权限。
指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库中的代码空间对包的访问权限。
选择您想与仓库中的代码空间共享的包后,可以授予该仓库访问权限。
-
在右侧栏中,单击“包设置”。
-
在“管理 Codespaces 访问”下,单击“添加存储库”。
-
搜索要添加的仓库。
-
对要允许访问的任何其他仓库重复此步骤。
-
如果仓库的代码空间不再需要访问映像,则可以删除访问权限。
为个人帐户配置容器映像的可见性
首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过更改访问设置来修改私有或公共容器映像的访问权限。
公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。
-
搜索并选择您的包。
-
在包登录页的右上角,单击“包设置”。
-
在“Danger Zone(危险区域)”下,选择可见性设置:
-
若要使容器映像对任何人都可见,请单击“设为公共”。
警告:包一旦被设为公共,便无法再次将其设为私有。
-
若要使容器映像只对选择的人员可见,请单击“设为私有”。
-
组织成员的容器创建可见性
您可以选择组织成员默认可以发布的容器的可见性。
- 在 GitHub.com 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。
- 在左侧,单击“包”。
- 在“Container creation(容器创建)”下,选择是要启用公共、私有或内部容器映像。
- 若要让组织成员创建公共容器映像,请单击“公共”。
- 若要让组织成员创建只对其他组织成员可见的私有容器映像,请单击“私有”。 您可以进一步自定义私有容器映像的可见性。
- 若要让组织成员创建对所有组织成员可见的内部容器映像,请单击“内部”。 如果组织属于企业,则容器映像将对所有企业成员可见。
为组织配置容器映像的可见性
首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过访问设置授予用户或团队对容器映像的不同访问角色。
公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击“包”。
3. 搜索并选择您的包。
-
在包登录页的右上角,单击“包设置”。
-
在“Danger Zone(危险区域)”下,选择可见性设置:
-
若要使容器映像对任何人都可见,请单击“设为公共”。
警告:包一旦被设为公共,便无法再次将其设为私有。
-
若要使容器映像只对选择的人员可见,请单击“设为私有”。
-