具有精细权限的包仅限于个人用户或组织帐户。 您可以从与包相连(或链接)的仓库分别更改包的访问控制和可见性。
目前,您只能对 Container registry 使用粒度权限。 我们的其他包注册表(如 npm 注册表)不支持粒度权限。
有关仓库作用域的包、与包相关的 PAT 作用域或管理操作工作流程的权限的更多信息,请参阅“关于 GitHub Packages 的权限”。
容器映像的可见性和访问权限
如果您对容器映像具有管理员权限,可以将容器映像的访问权限设置为私有或公有。 公有映像允许匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。
作为管理员,您还可以授予容器映像的访问权限,该权限与在组织和仓库级别设置的权限不同。
对于由个人帐户发布和拥有的容器映像,您可以向任何人授予访问角色。 对于组织发布和拥有的容器映像,您可以为组织中的任何人或团队授予访问角色。
权限 | 访问描述 |
---|---|
读取 | 可以下载包。 可以读取包元数据。 |
写入 | 可以上传和下载此包。 可以读取和写入包元数据。 |
管理员 | 可以上传、下载、删除和管理此包。 可以读取和写入包元数据。 可以授予包权限。 |
为个人帐户配置对容器映像的访问
如果您对个人帐户拥有的容器映像具有管理员权限,您可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。
如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。
- 搜索并选择您的包。
- 在包登录页的右上角,单击 Package settings(包设置)。
- 在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 不能授予团队访问个人帐户拥有的容器映像。
- 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。
所选用户将自动被授予访问权限,不需要先接受邀请。
为企业配置对容器映像的访问
如果您对组织拥有的容器映像具有管理员权限,您可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。
如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 Packages(包)。
-
搜索并选择您的包。
-
在包登录页的右上角,单击 Package settings(包设置)。
-
在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 您还可以从组织输入团队名称,以允许所有团队成员访问。
-
在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。
所选用户或团队将自动被授予访问权限,不需要先接受邀请。
从仓库继承容器映像的访问权限
要通过 GitHub Actions 工作流程简化包管理,您可以让容器映像默认继承仓库的访问权限。
如果您继承了存储包工作流程的仓库的访问权限,则可以通过仓库的权限调整对包的访问权限。
仓库一旦同步,您就无法访问包的精细访问设置。 要通过精细的包访问设置自定义包的权限,您必须先删除同步的仓库。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 Packages(包)。
-
搜索并选择您的包。
-
在包登录页的右上角,单击 Package settings(包设置)。
-
在“Repository source(仓库来源)”下,选择 Inherit access from repository (recommended)(从仓库继承访问权限 [推荐])。
确保工作流程访问您的包
为确保 GitHub Actions 工作流程能访问您的包,您必须授予存储工作流程的仓库以明确的访问权限。
指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库工作流程对包的访问权限。
注意:通过 Actions access(操作访问)菜单选项同步容器映像与仓库不同于将容器连接到仓库。 有关将仓库链接到容器的更多信息,请参阅“将仓库连接到包”。
用户帐户拥有的容器映像的 GitHub Actions 访问权限
- 搜索并选择您的包。
- 在包登录页的右上角,单击 Package settings(包设置)。
- 在左侧边栏中,单击 Actions access(操作访问)。
- 为确保工作流程有权访问容器包,您必须添加存储工作流程的仓库。 单击 Add repository(添加仓库)并搜索要添加的仓库。
- (使用“role(角色)”下拉菜单,选择您希望仓库访问您的容器映像所必须拥有的默认访问权限。
要进一步自定义对容器映像的访问,请参阅“配置对个人帐户的容器映像的访问”。
组织拥有的容器映像的 GitHub Actions 访问权限
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 Packages(包)。
-
搜索并选择您的包。
-
在包登录页的右上角,单击 Package settings(包设置)。
-
在左侧边栏中,单击 Actions access(操作访问)。
-
单击 Add repository(添加仓库)并搜索要添加的仓库。
-
使用“role(角色)”下拉菜单,选择您希望仓库成员访问您的容器映像所必须拥有的默认访问权限。 外部协作者将不包括在内。
要进一步自定义对容器映像的访问,请参阅“配置对组织的容器映像的访问”。
为个人帐户配置容器映像的可见性
首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过更改访问设置来修改私有或公共容器映像的访问权限。
公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。
-
搜索并选择您的包。
-
在包登录页的右上角,单击 Package settings(包设置)。
-
在“Danger Zone(危险区域)”下,选择可见性设置:
- 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。
警告:包一旦被设为公共,便无法再次将其设为私有。
- 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。  - 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。
组织成员的容器创建可见性
您可以选择组织成员默认可以发布的容器的可见性。
- 在 GitHub Enterprise Server 的右上角,单击您的头像,然后单击 Your organizations(您的组织)。
- 在组织旁边,单击 Settings(设置)。
- 在左侧,单击 Packages(包)。
- 在“Container creation(容器创建)”下,选择是要启用公共、私有或内部容器映像。
- 要让组织成员创建公共容器映像,请单击 Public(公共)。
- 要让组织成员创建只对其他组织成员可见的私有容器映像,请单击 Private(私有)。 您可以进一步自定义私有容器映像的可见性。
- 要使组织成员能够创建对所有组织成员可见的内部容器映像,请单击 Internal(内部)。 如果组织属于企业,则容器映像将对所有企业成员可见。
为组织配置容器映像的可见性
首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过访问设置授予用户或团队对容器映像的不同访问角色。
公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。
-
在 GitHub 上,导航到组织的主页面。
-
在组织名称下,单击 Packages(包)。
-
搜索并选择您的包。
-
在包登录页的右上角,单击 Package settings(包设置)。
-
在“Danger Zone(危险区域)”下,选择可见性设置:
- 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。
警告:包一旦被设为公共,便无法再次将其设为私有。
- 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。  - 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。