Skip to main content

Packages 简介

谁可以使用此功能?

Packages 适用于 Free、 Pro、面向组织的 Free、 Team、 Enterprise Cloud 和 Enterprise Server 3.0 或更高版本。
Packages 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 此外,使用旧版按存储库计划的帐户无法访问支持精细权限的注册表,因为这些帐户按存储库计费。有关支持精细权限的注册表列表,请参阅 关于 Packages 的权限。 有关详细信息,请参阅 的计划

Packages 是一个用于托管和管理包的平台,包括容器和其他依赖项。 Packages 将源代码和包组合在一起,以提供集成的权限管理和计费,使你能够在 上专注于软件开发。

你可以将 Packages 与 API、 Actions 和 webhook 集成在一起来创建端到端的 DevOps 工作流程,其中包括你的代码、CI 和部署解决方案。

Packages 为常用的包管理器提供不同的包注册表,例如 npm、RubyGems、Apache Maven、Gradle、Docker 和 Nuget。 的 Container registry 针对容器进行了优化,支持 Docker 和 OCI 映像。有关 Packages 支持的不同包注册表的详细信息,请参阅 使用 Packages 注册表

你可以在 上查看包的 README、元数据(如许可)、下载统计、版本历史记录等。 有关详细信息,请参阅“查看包”。

可以从托管包的存储库继承包的权限,也可以为特定用户或组织定义该权限。 某些注册表仅支持从存储库继承的权限。 有关这些注册表的列表,请参阅 关于 Packages 的权限。 有关包访问的详细信息,请参阅 配置包的访问控制和可见性

可以在公共存储库中发布包(公共包)以与所有人共享,或者在专用存储库中发布包(专用包)以与协作者或组织共享。

公共包免费使用 Packages。 对于专用包, 上的每个帐户都可获得一定数量的免费存储和数据传输,具体取决于帐户计划。 超出包含数量的任何使用量都由支出限制控制。 如果您是每月付费的用户,您的帐户默认支出限额为 0 美元,这将防止您在达到包含的限额后额外使用存储或数据传输。 如果按发票支付帐户费用,则帐户将具有无限制的默认支出限制。 有关详细信息,请参阅 About billing for Packages

Packages 使用您已经熟悉的原生包工具命令来发布和安装包版本。

语言说明包格式包客户端
JavaScript节点包管理器package.jsonnpm
RubyRubyGems 包管理器Gemfilegem
JavaApache Maven 项目管理和理解工具pom.xmlmvn
JavaJava 的 Gradle 构建自动化工具build.gradlebuild.gradle.ktsgradle
.NET.NET 的 NuGet 包管理nupkgdotnet CLI
空值Docker 容器管理平台DockerfileDocker

有关配置包客户端以结合使用 Packages 的详细信息,请参阅 使用 Packages 注册表

有关 Docker 和 Container registry 的详细信息,请参阅 使用容器注册表

注意

Packages 仅支持使用 personal access token (classic) 进行身份验证。 有关详细信息,请参阅“管理个人访问令牌”。

需要访问令牌才能发布、安装和删除专用、内部和公共包。

你可以使用 personal access token (classic) 向 Packages 或 API 进行身份验证。 创建 personal access token (classic) 时,可根据需要为令牌分配不同的作用域。 有关 personal access token (classic) 的包相关作用域的详细信息,请参阅 关于 Packages 的权限

要在 Actions 工作流程内向 Packages 注册表验证,您可以使用:

  • _TOKEN 发布与工作流存储库相关联的包。
  • 范围至少为 read:packages 的 personal access token (classic),用于安装与其他专用存储库关联的包(如果向存储库授予对包的读取访问权限,可以使用 _TOKEN。 请参阅 配置包的访问控制和可见性)。

有关 Actions 工作流中使用的 _TOKEN 的详细信息,请参阅 自动令牌身份验证

可以在 用户界面中或者通过使用 REST API 删除包。 有关详细信息,请参阅 删除和恢复包适用于包的 REST API 终结点。 对于某些注册表,你可以使用 GraphQL 删除专用包的版本。

不能将 Packages GraphQL API 与支持精细权限的注册表配合使用。 有关仅支持仓库作用域权限且可与 GraphQL API 一起使用的注册表,请参阅 关于 Packages 的权限****。

使用 GraphQL API 查询和删除专用包时,必须使用向 Packages 验证时使用的同一 personal access token (classic)。

有关详细信息,请参阅 使用 GraphQL 建立调用

您可以配置 web 挂钩来订阅与包相关的事件,例如包的发布或更新等事件。 有关详细信息,请参阅 Webhook 事件和有效负载

如果你对 Packages 有反馈或功能请求,请使用 Community 讨论

如果在 Packages 方面遇到以下问题,请通过 支持门户 联系我们:

  • 遇到任何与文档相矛盾的事情
  • 遇到模糊或不清楚的错误
  • 发布的包中含有敏感数据,例如违反 GDPR、API 密钥或个人身份信息