Skip to main content

关于 GitHub Packages 的权限

了解如何管理包的权限。

GitHub Packages is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 or higher, and GitHub AE.


GitHub Packages is not available for private repositories owned by accounts using legacy per-repository plans. Also, accounts using legacy per-repository plans cannot access the Container registry since these accounts are billed by repository. 更多信息请参阅“GitHub 的产品”。

包的权限要么是仓库范围,要么是用户/组织范围。

仓库作用域包的权限

仓库作用域的包从拥有该包的仓库继承权限和可见性。 通过转到仓库的主页并单击页面右侧的 Packages(包)链接,您可以找到作用域为仓库的包。 更多信息请参阅“将仓库连接到包”。

下面的 GitHub Packages 注册表使用仓库作用域的权限:

  • Docker 注册表 (docker.pkg.github.com)
  • npm 注册表
  • RubyGems 注册表
  • Apache Maven 注册表
  • NuGet 注册表

用户/组织作用域包的精细权限

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

目前,只有 Container registry 为容器映像包提供精细权限。

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

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

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

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

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

更多信息请参阅“配置包的访问控制和可见性”。

管理包

要使用或管理由包注册表托管的包,您必须使用具有适当作用域的令牌,并且您的个人帐户必须具有适当的权限。

例如:

  • 要从仓库下载和安装包,您的令牌必须具有 read:packages 作用域,并且您的用户帐户必须具有读取权限。
  • |要删除 GitHub Enterprise Cloud上的包,你的令牌必须至少具有 delete:packagesread:packages 作用域。 存储库作用域的软件包也需要 repo 作用域。 更多信息请参阅“删除和恢复软件包” | 作用域 | 描述 | 所需权限 | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | ------ | | read:packages | 从 GitHub Packages 下载和安装包 | 读取 | | write:packages | 将包上传和发布到 GitHub Packages | 写入 | | delete:packages | | | | 从 GitHub Packages 中删除包 | | | | 管理员 | | | | repo | 上传和删除包(连同 write:packagesdelete:packages) | 写入或管理员 |

创建 GitHub Actions 工作流程时,您可以使用 GITHUB_TOKEN 发布和安装 GitHub Packages 中的包,无需存储和管理个人访问令牌。

更多信息请参阅:

在 GitHub Actions 工作流程中维持对包的访问权限

为了确保工作流程将保持对包的访问,请确保在工作流程中使用正确的访问令牌,并启用了 GitHub Actions 对包的访问权限。

有关 GitHub Actions 的更多概念背景或在工作流程中使用包的示例,请参阅“使用 GitHub Actions 工作流程管理 GitHub Packages”。

访问令牌

  • 要发布与工作流程仓库相关联的包,请使用 GITHUB_TOKEN
  • 要安装与 GITHUB_TOKEN 无法访问的其他私有仓库相关联的包,请使用个人访问令牌

有关 GitHub Actions 工作流程中使用的 GITHUB_TOKEN 的更多信息,请参阅“工作流程中的身份验证”。

容器映像的 GitHub Actions 访问权限

要确保工作流程有权访问容器映像,您必须启用 GitHub Actions 访问运行工作流程的仓库。 您可以在包的设置页面上找到此设置。 更多信息请参阅“确保工作流程访问您的包”。