Skip to main content

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

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

注意

GitHub Enterprise Server 的 Container registry 目前为公共预览版,可能会有改动。

必须启用 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 删除和还原包的功能目前为 公共预览版,可能随时更改。

为个人帐户配置对包的访问

如果你对范围限定为个人帐户的包具有管理员权限,你可以向其他用户分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅关于访问权限的继承

如果你的包是私人或内部的且范围限定为组织,则你只能向其他组织成员或团队授予访问。

  1. 搜索要管理的包的名称,然后单击该名称。

  2. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  3. 在“管理访问权限”或“继承的访问权限”下,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 不能向团队授予对范围限定为个人帐户的包的访问权限。

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

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

为组织配置对包的访问权限

如果你对范围限定为组织的包具有管理员权限,可以向其他用户和团队分配读取、写入或管理员角色。 有关这些权限角色的详细信息,请参阅关于访问权限的继承

如果你的包是私人或内部的且范围限定为组织,则你只能向其他组织成员或团队授予访问。

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

  2. 在组织名称下,单击“ Packages”选项卡****。

    @octo-org 的个人资料页面的屏幕截图。 “包”选项卡以橙色边框突出显示。

  3. 搜索要管理的包的名称,然后单击该名称。

  4. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  5. 在“管理访问权限”或“继承的访问权限”下,单击“邀请团队或人员”,然后输入名称、用户名或你想要授予访问权限的人员的电子邮件。 你还可以输入组织中的团队名称,以允许所有团队成员访问。

  6. 在用户名或团队名称旁边,使用“角色”下拉菜单选择所需的权限级别。

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

选择包是否从存储库继承权限

如果将包链接到存储库,则可以选择包是否继承链接存储库的访问权限。 建议让包从存储库继承其权限,因为这简化了管理对包的访问的过程。

当包从存储库继承权限时,要授予或移除对包的访问权限,必须配置链接存储库的权限。

注意

如果更改包获取其访问权限的方式,则会覆盖包的任何现有权限。

为范围限定为个人帐户的包选择继承设置

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

  2. 在 GitHub 的右上角,单击你的个人资料图片,然后单击你的个人资料****。

    @octocat 的个人资料图片下的下拉菜单的屏幕截图。 “你的个人资料”用深橙色框出。

  3. 在个人资料页面上的标题中,单击“ Packages”选项卡****。

  4. 搜索要管理的包的名称,然后单击该名称。

  5. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  6. 若要选择包是否从链接的存储库继承访问权限,请在“管理访问权限”或“继承的访问权限”下,选择或取消选择“从存储库继承访问权限(建议)”。

    注意

    此部分的名称会根据包是否已从存储库继承其权限而更改。

为范围限定为组织的包选择继承设置

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

  2. 在组织名称下,单击“ Packages”选项卡****。

    @octo-org 的个人资料页面的屏幕截图。 “包”选项卡以橙色边框突出显示。

  3. 搜索要管理的包的名称,然后单击该名称。

  4. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  5. 若要选择包是否从链接的存储库继承访问权限,请在“管理访问权限”或“继承的访问权限”下,选择或取消选择“从存储库继承访问权限(建议)”。

    注意

    此部分的名称会根据包是否已从存储库继承其权限而更改。

确保工作流程访问您的包

对于范围限定为个人帐户或组织的包,为确保 GitHub Actions 工作流程能访问你的包,你必须授予存储工作流程的存储库以明确的访问权限。

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

注意

  • 将包与存储库 通过“Actions 访问”**** 菜单选项执行操作 同步不同于将包连接到存储库。 有关将仓库链接到包的详细信息,请参阅 将仓库连接到包
  • 可以选择使用 permissions 密钥和 packages 范围来限制工作流作业的权限。 有关详细信息,请参阅“在工作流中使用 GITHUB_TOKEN 进行身份验证”。
  • 如果授予公共存储库对专用包的访问权限,存储库的分支可能能够访问专用包。

针对范围限定为个人帐户的包的 GitHub Actions 访问权限

  1. 搜索要管理的包的名称,然后单击该名称。

  2. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  3. 在左侧边栏中,单击“操作访问”。

  4. 为确保工作流程有权访问包,必须添加存储工作流程的存储库。 单击“添加存储库”并搜索要添加的存储库。

    包设置页的“管理 Actions 访问权限”部分的屏幕截图。 “添加存储库”按钮以橙色边框突出显示。

  5. 使用 使用“角色”下拉菜单,选择你希望存储库访问你的包所拥有的默认访问级别。

若要进一步自定义对包的访问,请参阅为个人帐户配置对包的访问

针对范围限定为组织的包的 GitHub Actions 访问权限

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

  2. 在组织名称下,单击“ Packages”选项卡****。

    @octo-org 的个人资料页面的屏幕截图。 “包”选项卡以橙色边框突出显示。

  3. 搜索要管理的包的名称,然后单击该名称。

  4. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  5. 在左侧边栏中,单击“操作访问”。

  6. 单击“添加存储库”并搜索要添加的存储库。

    包设置页的“管理 Actions 访问权限”部分的屏幕截图。 “添加存储库”按钮以橙色边框突出显示。

  7. 使用 使用“角色”下拉菜单,选择你希望存储库访问你的包所拥有的默认访问级别。

若要进一步自定义对包的访问,请参阅为组织配置对包的访问

为个人帐户配置包的可见性

首次发布范围限定为个人帐户的包时,默认可见性是私有的,只有你才能看到包。 可以通过更改访问设置来修改私有或公共包的访问权限。

  1. 搜索要管理的包的名称,然后单击该名称。

  2. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  3. 在页面底部的“危险区域”下,单击“更改可见性”。

  4. 选择可见性设置:

    • 要使包对任何人都可见,请选择“公共”。

      警告

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

    • 要使包只对选择的人员可见,请选择“专用”。

  5. 要进行确认,请输入包名称,然后单击“我明白后果,更改包可见性”。

组织成员的包创建可见性

对于支持精细权限的注册表,可以选择组织成员默认可以发布的包的可见性。 有关这些注册表的列表,请参阅 关于 GitHub Packages 的权限

  1. 在 GitHub 的右上角,单击个人资料图片,然后单击“ Your organizations”****。
  2. 在组织旁边,单击“设置”。
  3. 在左侧,单击“包”。
  4. 在“包创建”下,选择是要启用公共、专用,还是内部包的创建。
    • 若要让组织成员创建公共包,请单击“公共”。

    • 若要让组织成员创建只对其他组织成员可见的专用包,请单击“专用”。 可以进一步自定义专用包的可见性。

    • 若要让组织成员创建对所有组织成员可见的内部包,请单击“内部”。 如果组织属于企业,则包将对所有企业成员可见。

为组织配置包的可见性

首次发布包时,默认可见性是私有的,只有您才能看到包。 可以通过访问设置授予用户或团队对包的不同访问角色。 包一旦被设为公共,便无法再次将其设为私有。

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

  2. 在组织名称下,单击“ Packages”选项卡****。

    @octo-org 的个人资料页面的屏幕截图。 “包”选项卡以橙色边框突出显示。

  3. 搜索要管理的包的名称,然后单击该名称。

  4. 在包的登陆页面上,单击右侧的“ Package settings”****。

    包的登陆页面的屏幕截图。 右下角是以橙色边框突出显示的“包设置”。

  5. 在页面底部的“危险区域”下,单击“更改可见性”并选择可见性设置:

    • 要使包对任何人都可见,请单击“公共”。

      警告

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

    • 要使包只对组织中选择的人员可见,请单击“专用”。

    • 要使包对所有组织成员可见,请单击“内部”。 如果组织属于企业,则包将对所有企业成员可见。