关于 GitHub Packages 的权限

了解如何管理包的权限。

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)”。

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

仓库作用域包的权限

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

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

  • npm 注册表
  • RubyGems 注册表
  • Apache Maven 注册表
  • NuGet 注册表

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

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

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

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

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

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

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

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

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

管理包

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

例如:

  • 要从仓库下载和安装包,您的令牌必须具有 read:packages 作用域,并且您的用户帐户必须具有读取权限。
  • 要在 GitHub上删除软件包,您的令牌至少必须有 delete:packagesread:packages 作用域。 Repo-scoped 软件包也需要 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 访问运行工作流程的仓库。 您可以在包的设置页面上找到此设置。 更多信息请参阅“确保工作流程访问您的包”。

此文档对您有帮助吗?

隐私政策

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

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

做出贡献

或, 了解如何参与。