代码包的 GitHub Packages
在上一单元中,你已了解如何使用 GitHub Actions 生成和发布容器映像。
在本单元中,我们将了解 GitHub 包支持的其他包。 GitHub Packages 可与你当前项目的生态系统工具配合使用:用于 npm 包的 npm、nuget.exe 或用于 NuGet 包的 dotnet CLI 等。
对 GitHub 包进行身份验证
在包管理器中进行身份验证的方式将取决于项目的生态系统。 无论使用哪种生态系统,都需要三条信息:
- 你的 GitHub 用户名
- 个人访问令牌
- 包生态系统的 GitHub Packages 终结点
生成个人访问令牌
若要安装、发布或删除包,需要访问令牌。 使用包管理器时,必须生成个人访问令牌(PAT)。 可以通过配置文件设置来生成 PAT。
警告
像密码一样对待令牌,并将它们保密。
登录到 GitHub Packages
在从 GitHub 包发布或安装包之前,需要在包管理器中进行身份验证。 终结点将如下所示 https://PACKAGE_TYPE.pkg.github.com/OWNER/REPOSITORY,其中 PACKAGE_TYPE 使用的是包生态系统的类型。
下表显示了要运行的命令,以便基于包生态系统对 GitHub 包进行身份验证:
| 你的包生态系统 | 用于向 GitHub 包进行身份验证的命令行 |
|---|---|
| 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 包用于项目环境,可 在此处阅读文档。
安装一个软件包
进行身份验证后,可以轻松地在项目中使用已发布的包。 每个包主页都显示要运行的命令,具体取决于项目环境。
管理软件包
GitHub 包提供了多种方法来轻松管理包生命周期和工作流。
可以通过 GitHub API 和 GraphQL API 管理 GitHub 包。 这些 API 允许支持高级集成方案。 例如,使用 GitHub 的 Webhook 功能,可以在发布新包时运行代码。 假设你是开源项目的维护者。 使用 Webhook,可以在发布新包时自动发布新的推文或博客文章。
还可以使用 GitHub Actions 自动执行包管理。 使用 delete-package-versions 操作,可以在发布新版本时自动删除包的最旧版本。