代码包的 GitHub Packages

已完成

在上一单元中,你了解了如何使用 GitHub Actions 生成和发布容器映像。

在本单元中,我们将介绍 GitHub Packages 支持的其他包。 GitHub Packages 可与你当前项目的生态系统工具配合使用:用于 npm 包的 npm、nuget.exe 或用于 NuGet 包的 dotnet CLI 等。

对 GitHub Packages 进行身份验证

对包管理器进行身份验证的方式将取决于项目的生态系统。 无论使用的是哪种生态系统,都将需要三类信息:

  • GitHub 用户名
  • 个人访问令牌
  • 包生态系统的 GitHub Packages 终结点

生成个人访问令牌

若要安装、发布或删除包,你需要访问令牌。 使用包管理器时,必须生成个人访问令牌 (PAT)。 可以通过配置文件设置来生成 PAT。

警告

请将令牌视为密码,并保密。

登录到 GitHub Packages

在从 GitHub Packages 发布或安装包之前,需要在包管理器中进行身份验证。 终结点就像 https://PACKAGE_TYPE.pkg.github.com/OWNER/REPOSITORY,其中 PACKAGE_TYPE 是你正在使用的包生态系统的类型。

下表显示了为基于包生态系统对 GitHub Packages 进行身份验证而需运行的命令:

你的包生态系统 用于对 GitHub Package 进行身份验证的命令行
NuGet dotnet nuget add source https://nuget.pkg.github.com/OWNER/index.json -n github -u OWNER -p [Your PAT Token]
npm bash npm login --registry=https://npm.pkg.github.com
RubyGems echo ":github: Bearer GH_TOKEN" >> ~/.gem/credentials
Maven 和 Gradle 可以在推送时直接进行身份验证。

如果要详细了解如何将 GitHub Packages 用于项目环境,可以阅读此处的文档

安装包

通过身份验证后,可以轻松地在项目中使用已发布的包。 每个包主页都会显示要运行的命令,具体取决于项目环境。

A Package page displays information about how to install it into your project, depending on the project environment.

管理包

GitHub Packages 提供若干方法用于轻松管理包生命周期和工作流。

可以通过 GitHub API 和 GraphQL API 管理 GitHub Packages。 这些 API 使你可以支持高级集成场景。 例如,通过使用 GitHub 的 Webhook 功能,可以在新包发布时运行代码。 假设你是一个开源项目的维护人员。 通过使用 Webhook,可以在新包发布时自动发布新的推文或博客文章。

也可使用 GitHub Actions 来自动执行包管理。 通过使用 delete-package-versions 操作,可以在发布新版本时自动删除包的最旧版本。