代码包的 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 用于项目环境,可以阅读此处的文档。
安装包
通过身份验证后,可以轻松地在项目中使用已发布的包。 每个包主页都会显示要运行的命令,具体取决于项目环境。
管理包
GitHub Packages 提供若干方法用于轻松管理包生命周期和工作流。
可以通过 GitHub API 和 GraphQL API 管理 GitHub Packages。 这些 API 使你可以支持高级集成场景。 例如,通过使用 GitHub 的 Webhook 功能,可以在新包发布时运行代码。 假设你是一个开源项目的维护人员。 通过使用 Webhook,可以在新包发布时自动发布新的推文或博客文章。
也可使用 GitHub Actions 来自动执行包管理。 通过使用 delete-package-versions 操作,可以在发布新版本时自动删除包的最旧版本。