Note
GitHub Enterprise Server 的 Container registry 目前为beta 版本,可能会有改动。
必须启用 GitHub Packages 和子域隔离才能使用 Container registry。 有关详细信息,请参阅“使用容器注册表”。
包可以从存储库继承其可见性和访问权限,或者,对于支持精细权限的注册表,可以独立于存储库设置包的可见性和权限。
有关支持精细权限的注册表列表,以及有关包权限、PAT 的包相关范围或管理 GitHub Actions 工作流的权限的详细信息,请参阅“关于 GitHub Packages 的权限”。
关于访问权限的继承
在支持精细权限的注册表中,包的范围限定为个人帐户或组织。 在这些注册表中,可以在不将包链接到存储库的情况下发布包,然后通过在包的设置中设置访问权限和可见性来确定谁可以访问包。
可以选择让包继承链接存储库的访问权限。 有关详细信息,请参阅下面的“选择包是否从存储库继承权限”。
如果在仅支持存储库范围权限的注册表中发布包,则该包始终链接到存储库,并始终继承链接存储库的权限。
关于设置包的可见性和访问权限
如果包属于支持粒度权限的注册表,对包具有管理员权限的任何人都可以将包设置为专用或公共,并且可以授予对包的访问权限,这些权限不同于在组织和存储库级别设置的权限。 有关支持精细权限的注册表的列表,请参阅“关于 GitHub Packages 的权限”。
在大多数注册表中,若要拉取包,必须使用 personal access token 或 GITHUB_TOKEN
进行身份验证,无论该包是公共包还是专用包。 但是,在 Container registry 中,公共包支持匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。
你发布包时,会自动获取对包的管理员权限。 如果将包发布到组织,则组织中具有 owner
角色的任何人也会获得包的管理员权限。
对于范围限定为个人帐户的包,可以授予任何人访问角色。 对于范围限定为组织的包,可以为组织中的任何人或团队授予访问角色。
如果使用 GitHub Actions 工作流来管理包,可以通过 通过“Actions 访问”**** 菜单选项执行操作 向存储工作流的存储库授予访问角色。 有关详细信息,请参阅“配置包的访问控制和可见性”。
权限 | 访问说明 |
---|---|
读取 | 可以下载包。 可以读取包元数据。 |
写入 | 可以上传和下载此包。 可以读取和写入包元数据。 |
管理员 | 可以上传、下载、删除和管理此包。 可以读取和写入包元数据。 可以授予包权限。 |
**注意:**GitHub Actions 工作流使用 REST API 删除和还原包的功能目前为 beta 版本,可能随时更改。
为个人帐户配置对包的访问
如果你对范围限定为个人帐户的包具有管理员权限,你可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅“关于访问权限的继承”。
如果你的包是私人或内部的且范围限定为组织,则你只能向其他组织成员或团队授予访问。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在“管理访问权限”或“继承的访问权限”下,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 不能向团队授予对范围限定为个人帐户的包的访问权限。
-
在用户名或团队名称旁边,使用“角色”下拉菜单选择所需的权限级别。
所选用户将自动被授予访问权限,不需要先接受邀请。
为组织配置对包的访问权限
如果你对范围限定为组织的包具有管理员权限,可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅“关于访问权限的继承”。
如果你的包是私人或内部的且范围限定为组织,则你只能向其他组织成员或团队授予访问。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在“管理访问权限”或“继承的访问权限”下,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 你还可以输入组织中的团队名称,以允许所有团队成员访问。
-
在用户名或团队名称旁边,使用“角色”下拉菜单选择所需的权限级别。
所选用户或团队将自动被授予访问权限,不需要先接受邀请。
选择包是否从存储库继承权限
如果将包链接到存储库,则可以选择包是否继承链接存储库的访问权限。 建议让包从存储库继承其权限,因为这简化了管理对包的访问的过程。
当包从存储库继承权限时,要授予或移除对包的访问权限,必须配置链接存储库的权限。
注意:如果更改包获取其访问权限的方式,则会覆盖包的任何现有权限。
为范围限定为个人帐户的包选择继承设置
-
在 GitHub 上,导航到个人帐户的主页面。
-
在 GitHub 的右上角,单击个人资料照片,然后单击“你的个人资料”。
-
在个人资料页面上的标题中,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
若要选择包是否从链接的存储库继承访问权限,请在“管理访问权限”或“继承的访问权限”下,选择或取消选择“从存储库继承访问权限(建议)”。
注意:此部分的名称会根据包是否已从存储库继承其权限而更改。
为范围限定为组织的包选择继承设置
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
若要选择包是否从链接的存储库继承访问权限,请在“管理访问权限”或“继承的访问权限”下,选择或取消选择“从存储库继承访问权限(建议)”。
注意:此部分的名称会根据包是否已从存储库继承其权限而更改。
确保工作流程访问您的包
对于范围限定为个人帐户或组织的包,为确保 GitHub Actions 工作流程能访问你的包,你必须授予存储工作流程的存储库以明确的访问权限。
指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库工作流程对包的访问权限。
注意:
- 将包与存储库 通过“Actions 访问”**** 菜单选项执行操作 同步不同于将包连接到存储库。 有关将存储库链接到包的详细信息,请参阅“将仓库连接到包”。
- 可以选择使用
permissions
密钥和packages
范围来限制工作流作业的权限。 有关详细信息,请参阅“控制 GITHUB_TOKEN 的权限”。 - 如果授予公共存储库对专用包的访问权限,存储库的分支可能能够访问专用包。
针对范围限定为个人帐户的包的 GitHub Actions 访问权限
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在左侧边栏中,单击“操作访问”。
-
为确保工作流程有权访问包,必须添加存储工作流程的存储库。 单击“添加存储库”并搜索要添加的存储库。
-
使用 使用“角色”下拉菜单,选择你希望存储库访问你的包所拥有的默认访问级别。
若要进一步自定义对包的访问,请参阅“配置对个人帐户的包的访问”。
针对范围限定为组织的包的 GitHub Actions 访问权限
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在左侧边栏中,单击“操作访问”。
-
单击“添加存储库”并搜索要添加的存储库。
-
使用 使用“角色”下拉菜单,选择你希望存储库访问你的包所拥有的默认访问级别。
若要进一步自定义对包的访问,请参阅“配置对组织的包的访问”。
为个人帐户配置包的可见性
首次发布范围限定为个人帐户的包时,默认可见性是私有的,只有你才能看到包。 可以通过更改访问设置来修改私有或公共包的访问权限。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在页面底部的“危险区域”下,单击“更改可见性”。
-
选择可见性设置:
-
要使包对任何人都可见,请选择“公共”。
警告:包一旦被设为公共,便无法再次将其设为私有。
-
要使包只对选择的人员可见,请选择“专用”。
-
-
要进行确认,请输入包名称,然后单击“我明白后果,更改包可见性”。
组织成员的包创建可见性
对于支持精细权限的注册表,可以选择组织成员默认可以发布的包的可见性。 有关这些注册表的列表,请参阅“关于 GitHub Packages 的权限”。
- 在 GitHub 的右上角,选择个人资料照片,然后单击“你的组织”。
- 在组织旁边,单击“设置”。
- 在左侧,单击“包”。
- 在“包创建”下,选择是要启用公共、专用,还是内部包的创建。
- 若要让组织成员创建公共包,请单击“公共”。
- 若要让组织成员创建只对其他组织成员可见的专用包,请单击“专用”。 可以进一步自定义专用包的可见性。
- 若要让组织成员创建对所有组织成员可见的内部包,请单击“内部”。 如果组织属于企业,则包将对所有企业成员可见。
为组织配置包的可见性
首次发布包时,默认可见性是私有的,只有您才能看到包。 可以通过访问设置授予用户或团队对包的不同访问角色。 包一旦被设为公共,便无法再次将其设为私有。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 “包”选项卡。
-
搜索要管理的包的名称,然后单击该名称。
-
在包的登陆页面上,单击右侧的“ 包设置”。
-
在页面底部的“危险区域”下,单击“更改可见性”并选择可见性设置:
-
要使包对任何人都可见,请单击“公共”。
警告:包一旦被设为公共,便无法再次将其设为私有。
-
要使包只对组织中选择的人员可见,请单击“专用”。
-
要使包对所有组织成员可见,请单击“内部”。 如果组织属于企业,则包将对所有企业成员可见。
-