我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

关于 GitHub 包

GitHub 包注册表 是一种软件包托管服务,允许您私下或公开托管软件包,并将包用作项目中的依赖项。

GitHub 包注册表 可用于 GitHub Free、GitHub Pro、组织的 GitHub Free、GitHub Team、GitHub Enterprise Cloud 和 GitHub One。 GitHub 包注册表 不适用于使用旧版按仓库计划的帐户所拥有的私有仓库。 更多信息请参阅“GitHub 的产品”。

本文内容

关于包

包是一种自成一体的可重复使用软件片段,包括代码和元数据,例如当前版本号、名称和包的依赖项,开发者将这些元素包在一起放在一个常见位置,供他人使用。 包简化了针对常见问题的使用和分发解决方案,例如需要使用通用框架来开发项目、测试运行器和语法检查以提高代码质量,或引入行业标准的机器学习工具来强化您的应用程序。

关于 GitHub 包注册表

GitHub 包注册表 是一种包托管服务,与 GitHub 完全集成。 GitHub 包注册表 将您的源代码和包组合在一起,以提供集成的权限管理和计费,使您能够在 GitHub 上专注于软件开发。

您可以在公共仓库中发布包(公共包)以与所有 GitHub 共享,或者在私有仓库中发布包(私有包)以与协作者或组织分享。 您可以使用 GitHub 角色和团队来限制谁可以安装或发布每个包,因为包会继承仓库的权限。 对仓库有读取权限的任何人都可以将包安装为项目中的依赖项,有写入权限的任何人都可以发布新的包版本。

您可以在一个仓库中托管多个包,并通过查看包的自述文件、下载统计、版本历史等,了解每个包的更多信息。

您可以将 GitHub 包注册表 与 GitHub API、GitHub 操作 以及 web 挂钩集成在一起,以创建端到端的 DevOps 工作流程,其中包括您的代码、CI 和部署解决方案。

关于 GitHub 包注册表 的计费

公共包免费使用 GitHub 包注册表。 对于私有包,每个 GitHub 帐户可获得一定数量的免费存储和数据传输,具体取决于帐户所使用的产品。 默认情况下,您的帐户支出限额为 0 美元,这将防止您在达到包含的限额后额外使用存储或数据传输。 如果您的支出限额高于默认的 0 美元,您将会收到额外存储或数据传输的帐单,也称为超限费用,最高可达到您的支出限额。 Any coupons on your account do not apply to GitHub 包注册表 overages. 更多信息请参阅“关于 GitHub 包注册表 的计费”。

支持的客户端和格式

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

GitHub 包注册表 目前支持以下客户端和格式。

包客户端语言包格式描述
npmJavaScriptpackage.json节点包管理器
gemRubyGemfileRubyGems 包管理器
mvnJavapom.xmlApache Maven 项目管理和理解工具
gradleJavabuild.gradlebuild.gradle.ktsJava 的 Gradle 构建自动化工具
docker不适用DockerfileDocker 容器管理平台
dotnet CLI.NETnupkg.NET 的 NuGet 包管理

有关配置包客户端以用于 GitHub 包注册表 的更多信息,请参阅“将 GitHub 包注册表 用于项目的生态系统”。

关于令牌

您需要访问令牌才能发布、安装和删除 GitHub 包注册表 中的包。 您可以使用个人访问令牌直接向 GitHub 包注册表 或 GitHub API 验证您的用户名。 您可以使用 GITHUB_TOKEN 以通过 GitHub 操作 工作流程进行身份验证。

创建个人访问令牌时,可根据需要为令牌分配不同的作用域。 更多信息请参阅 GitHub 开发者文档 中的“创建用于命令行的个人访问令牌”和“可用作用域”。

要安装或发布包,您必须使用具有适当作用域的令牌,并且您的用户帐户必须对该仓库具有适当的权限。

例如:

  • 要从仓库下载和安装包,您的令牌必须具有 read:packages 作用域,并且您的用户帐户必须对该仓库具有读取权限。 如果是私有仓库,您的令牌还必须具有 repo 作用域。
  • 要在 GitHub 上删除私有包的特定版本,您的令牌必须具有 delete:packagesrepo 作用域。 公共包无法删除。 更多信息请参阅“删除包”。
作用域Description仓库权限
read:packages从 GitHub 包注册表 下载和安装包读取
write:packages将包上传和发布到 GitHub 包注册表写入
delete:packages从 GitHub 包注册表 删除私有包的特定版本管理员
repo安装、上传和删除私有仓库中的某些包(对应 read:packageswrite:packagesdelete:packages读取、写入或管理员

创建 GitHub 操作 工作流程时,您可以使用 GITHUB_TOKEN 发布和安装 GitHub 包注册表 中的包,无需存储和管理个人访问令牌。 更多信息请参阅“将 GitHub 包注册表 用于 GitHub 操作”。

管理包

您可以在 GitHub 上或使用 GraphQL API 删除私有包的版本。 使用 GraphQL API 查询和删除私有包时,必须使用与向 GitHub 包注册表 验证时相同的令牌。 更多信息请参阅 GitHub 开发者文档 中的“删除包”和“使用 GraphQL 进行调用”。

您可以配置 web 挂钩来订阅与包相关的事件,例如包的发布或更新等事件。 For more information, see the "package webhook event" in GitHub 开发者文档.

联系支持

如果您对 GitHub 包注册表 有反馈或功能请求,请使用 GitHub 包注册表 反馈表

如果在 GitHub 包注册表 方面遇到以下问题,请使用我们的联系表联系 GitHub 支持:

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

问问别人

找不到要找的内容?

联系我们