配置包的访问控制和可见性

选择谁对容器映像具有读取、写入或管理员访问权限,以及容器映像在 GitHub 上的可见性。

GitHub Packages 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 和 GitHub AE。


GitHub Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 此外,使用旧版按仓库计划的帐户无法访问 Container registry,因为这些帐户是按仓库计费的。 更多信息请参阅“[GitHub 的产品](/articles/github-s-products)”。

具有精细权限的包仅限于个人用户或组织帐户。 您可以从与包相连(或链接)的仓库分别更改包的访问控制和可见性。

目前,您只能对 Container registry 使用粒度权限。 粒度权限不支持我们的其他软件包注册表,如 npm 注册表。

有关仓库作用域的包、与包相关的 PAT 作用域或管理操作工作流程的权限的更多信息,请参阅“关于 GitHub Packages 的权限”。

容器映像的可见性和访问权限

如果您对容器映像具有管理员权限,可以将容器映像的访问权限设置为私有或公有。 公有映像允许匿名访问,无需身份验证或通过 CLI 登录即可进行拉取。

作为管理员,您还可以授予容器映像的访问权限,该权限与在组织和仓库级别设置的权限不同。

对于由用户帐户发布和拥有的容器映像,您可以向任何人授予访问角色。 对于组织发布和拥有的容器映像,您可以为组织中的任何人或团队授予访问角色。

权限访问描述
读取可以下载包。
可以读取包元数据。
写入可以上传和下载此包。
可以读取和写入包元数据。
管理员可以上传、下载、删除和管理此包。
可以读取和写入包元数据。
可以授予包权限。

为个人帐户配置对容器映像的访问

如果您对用户帐户拥有的容器映像具有管理员权限,您可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。

如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。

  1. 在 GitHub 上,导航到用户帐户的主页面。
  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片
  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项
  4. 在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 不能授予团队访问用户帐户拥有的容器映像。 容器访问邀请按钮
  5. 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。 容器访问选项

所选用户将自动被授予访问权限,不需要先接受邀请。

为企业配置对容器映像的访问

如果您对组织拥有的容器映像具有管理员权限,您可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的更多信息,请参阅“容器映像的可见性和访问权限”。

如果您的软件包是私人或内部的并且由组织拥有,则您只能向其他组织成员或团队授予访问。

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)

    Packages tab on org landing page

  3. 在软件包设置页面上,单击 Invite teams or people(邀请团队或人员),然后输入名称、用户名或您想要授予访问权限的人员的电子邮件地址。 您还可以从组织输入团队名称,以允许所有团队成员访问。 容器访问邀请按钮

  4. 在用户名或团队名称旁边,使用“Role(角色)”下拉菜单选择所需的权限级别。 容器访问选项

所选用户或团队将自动被授予访问权限,不需要先接受邀请。

从仓库继承容器映像的访问权限

要通过 GitHub Actions 工作流程简化包管理,您可以让容器映像默认继承仓库的访问权限。

如果您继承了存储包工作流程的仓库的访问权限,则可以通过仓库的权限调整对包的访问权限。

仓库一旦同步,您就无法访问包的精细访问设置。 要通过精细的包访问设置自定义包的权限,您必须先删除同步的仓库。

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)

    Packages tab on org landing page

  3. 在“Repository source(仓库来源)”下,选择 Inherit access from repository (recommended)(从仓库继承访问权限 [推荐])继承仓库访问权限复选框

确保工作流程访问您的包

为确保 GitHub Actions 工作流程能访问您的包,您必须授予存储工作流程的仓库以明确的访问权限。

指定的仓库不需要是保存包源代码的仓库。 您可以授予多个仓库工作流程对包的访问权限。

注意:通过 Actions access(操作访问)菜单选项同步容器映像与仓库不同于将容器连接到仓库。 有关将仓库链接到容器的更多信息,请参阅“将仓库连接到包”。

用户帐户拥有的容器映像的 GitHub Actions 访问权限

  1. 在 GitHub 上,导航到用户帐户的主页面。
  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片
  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项
  4. 在左侧边栏中,单击 Actions access(操作访问)左侧菜单中的"Actions access(操作访问)"选项
  5. 为确保工作流程有权访问容器包,您必须添加存储工作流程的仓库。 单击 Add repository(添加仓库)并搜索要添加的仓库。 "添加仓库"按钮
  6. (使用“role(角色)”下拉菜单,选择您希望仓库访问您的容器映像所必须拥有的默认访问权限。 授予仓库的权限访问级别

要进一步自定义对容器映像的访问,请参阅“配置对个人帐户的容器映像的访问”。

组织拥有的容器映像的 GitHub Actions 访问权限

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)

    Packages tab on org landing page

  3. 在左侧边栏中,单击 Actions access(操作访问)左侧菜单中的"Actions access(操作访问)"选项

  4. 单击 Add repository(添加仓库)并搜索要添加的仓库。 "添加仓库"按钮

  5. 使用“role(角色)”下拉菜单,选择您希望仓库成员访问您的容器映像所必须拥有的默认访问权限。 外部协作者将不包括在内。 授予仓库的权限访问级别

要进一步自定义对容器映像的访问,请参阅“配置对组织的容器映像的访问”。

为个人帐户配置容器映像的可见性

首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过更改访问设置来修改私有或公共容器映像的访问权限。

公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。

  1. 在 GitHub 上,导航到用户帐户的主页面。

  2. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your profile(您的个人资料)个人资料照片

  3. 在个人资料页面的右上角,单击 Packages(包)个人资料页上的包选项

  4. 在“Danger Zone(危险区域)”下,选择可见性设置:

    • 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。

    警告:包一旦被设为公共,便无法再次将其设为私有。

    - 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。 ![容器可见性选项](/assets/images/help/package-registry/container-visibility-option.png)

组织成员的容器创建可见性

您可以选择组织成员默认可以发布的容器的可见性。

  1. 在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your organizations(您的组织)个人资料菜单中的组织
  2. 在组织旁边,单击 Settings(设置)设置按钮
  3. 在左侧,单击 Packages(包)
  4. 在“Container creation(容器创建)”下,选择是要启用公共、私有或内部容器映像。
    • 要让组织成员创建公共容器映像,请单击 Public(公共)
    • 要让组织成员创建只对其他组织成员可见的私有容器映像,请单击 Private(私有)。 您可以进一步自定义私有容器映像的可见性。
    • 仅适用于 GitHub Enterprise Cloud :要让组织成员创建仅供其他组织成员可见的内部容器映像,请单击 Internal(内部)组织成员发布的容器图像的可见性选项

为组织配置容器映像的可见性

首次发布包时,默认可见性是私有的,只有您才能看到包。 您可以通过访问设置授予用户或团队对容器映像的不同访问角色。

公共包可以匿名访问,无需身份验证。 包一旦被设为公共,便无法再次将其设为私有。

  1. 在 GitHub 上,导航到组织的主页面。

  2. 在组织名称下,单击 Packages(包)

    Packages tab on org landing page

  3. 在“Danger Zone(危险区域)”下,选择可见性设置:

    • 要使容器映像对任何人都可见,请单击“Make public(设为公共)”。

    警告:包一旦被设为公共,便无法再次将其设为私有。

    - 要使容器映像只对选择的人员可见,请单击“**Make private(设为私有)**”。 ![容器可见性选项](/assets/images/help/package-registry/container-visibility-option.png)

此文档对您有帮助吗?

隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。