什么是 GitHub Packages?
GitHub 包是一项包管理服务,可用于在源代码旁轻松发布公共或专用包。
注释
如果不熟悉 GitHub,请查看 GitHub Learn 模块简介 。
GitHub 包是包注册表
GitHub 包允许你在组织内或公开共享项目依赖项。
处理具有包依赖项的项目时,请务必信任它们、了解其代码并与生成它们的社区联系。 在组织内,你还需要能够快速找到已批准的供你使用的内容。
GitHub 包使用相同的熟悉的 GitHub 界面在 GitHub 上查找公共包,或者组织或存储库中的专用包。
标准包管理器
GitHub 包与常见的包管理客户端兼容,因此可以使用所选工具发布包。 如果存储库更为复杂,可能需要发布不同类型的多个包。 还可以使用 Webhook 或 GitHub Actions 完全自定义发布和发布后工作流。
是否发布开放源代码包? 许多开源项目将其代码存储在 GitHub 上,因此你可以发布预发行版的包,以便在社区中进行测试,然后轻松地将特定版本提升到所选的公共注册表。
编写时,GitHub 包与以下包管理器兼容:
- npm,NodeJS 包管理器
- NuGet,.NET 包管理器
- Ruby 包管理器 RubyGems
- Maven 和 Gradle,两个 Java 包管理器
GitHub 包也是容器注册表
从完整的应用程序到 CLI 实用工具,容器是另一种分发代码的形式。 GitHub 包允许发布和分发容器映像。 发布后(公开或私下),可以从任何位置使用这些图片,包括:
- 在本地开发环境中
- 作为 GitHub Codespaces 开发环境的基础映像
- 作为使用 GitHub Actions 执行持续集成 (CI) /持续部署 (CD) 工作流的一个步骤
- 在服务器或云服务上
将 GitHub 包与 GitHub 版本进行比较
GitHub 包用于将库的版本发布到标准包源或容器注册表。 它们旨在利用特定包管理客户端处理该源的方式,例如链接回在其中创建包的存储库以及所使用的代码版本。
GitHub Releases 用于发布一组打包的软件,附带发布说明和二进制文件链接。 可以直接从其唯一的 URL 下载这些版本,并可以将其追溯到创建它们的特定提交。 只能将版本下载为 tarball 或 ZIP 文件。
统一标识和权限
假设你正在使用 GitHub 来托管源代码的项目:前端的 JavaScript,后端使用 npm 和 Java。 现在,你至少维护三组不同的用户凭据和权限:对于 Git、npm 和 Maven 存储库。
使用 GitHub 包,可以在源代码存储库、专用 npm 注册表和 Maven 或 Gradle 专用注册表中使用单个凭据集。 通过 GitHub 发布的包继承存储库级别分配的可见性和权限。 新团队成员需要对包及其代码具有读取访问权限? 向他们授予对存储库的读取访问权限,并已完成!
从 GitHub 生成和发布包
GitHub Actions 是另一项 GitHub 功能,可用于自动执行软件工作流。 可以直接从 GitHub 生成、测试和部署代码。
小窍门
若要了解有关 GitHub Actions 的详细信息,请查看 使用 GitHub Actions Learn 模块生成持续集成(CI)工作流 。
通过组合 GitHub Actions 和 GitHub 包,可以生成一个工作流来生成和测试代码,然后通过直接将代码推送到存储库,将其发布到 GitHub 包。
在下一单元中,我们将了解如何使用工作流发布到 GitHub 包和 GitHub 容器注册表。