Skip to main content

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

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

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 访问”**** 菜单选项执行操作 向存储工作流的存储库授予访问角色。 有关详细信息,请参阅“配置包的访问控制和可见性”。

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

Note

GitHub Actions 工作流使用 REST API 删除和还原包的功能目前为 beta 版本,可能随时更改。

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

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

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

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

  2. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

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

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

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

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

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

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

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

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

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

  4. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

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

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

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

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

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

Note

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

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

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

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

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

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

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

  5. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

    Note

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

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

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

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

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

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

  4. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

    Note

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

确保工作流程访问您的包

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

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

Note

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

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

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

  2. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

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

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

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

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

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

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

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

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

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

  4. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

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

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

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

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

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

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

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

  2. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

  4. 选择可见性设置:

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

      Warning

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

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

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

组织成员的包创建可见性

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

  1. 在 GitHub 的右上角,选择个人资料照片,然后单击“你的组织”。
  2. 在组织旁边,单击“设置”。
  3. 在左侧,单击“包”。
  4. 在“包创建”下,选择是要启用公共、专用,还是内部包的创建。
    • 若要让组织成员创建公共包,请单击“公共”。
    • 若要让组织成员创建只对其他组织成员可见的专用包,请单击“专用”。 可以进一步自定义专用包的可见性。
    • 若要让组织成员创建对所有组织成员可见的内部包,请单击“内部”。 如果组织属于企业,则包将对所有企业成员可见。

为组织配置包的可见性

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

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

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

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

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

  4. 在包的登陆页面上,单击右侧的“ 包设置”。

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

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

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

      Warning

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

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

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