使用来自 Crates.io 的包
Azure DevOps Services | Azure DevOps Server 2022
Azure Artifacts 上游源使开发人员能够使用公共注册表中的包,例如 Crates.io 和 nuget.org。本文将指导你设置项目并使用命令行从 Crates.io 使用箱。
本文将指导你完成以下操作:
- 创建 Azure Artifacts 源
- 连接到源
- 从上游使用箱
先决条件
Azure DevOps 组织。 如果还没有组织,则创建一个组织。
一个 Azure DevOps 项目。 如果没有项目,请创建一个项目 。
下载并安装 rustup。
创建源
Azure Artifacts 建议为从 crates.io 使用 crate 设置一个专用源,并为发布内部 crate 设置一个单独的源。
登录到 Azure DevOps 组织,并导航到你的项目。
选择“项目”,然后选择“创建源”。
输入源的名称,定义其可见性,然后选择范围。 请务必选中 上游源 复选框,以包含来自公共注册表的包。
完成操作后,选择“创建”。
连接到源
登录到 Azure DevOps 组织,并导航到你的项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择“ 连接到源”,然后从左侧导航窗格中选择 “货物 ”。
如果这是首次将 Cargo 与 Azure Artifacts 配合使用,请确保已安装 rustup。
将项目 设置 部分中提供的代码片段添加到 源存储库中的 .cargo/config.toml 文件:
项目范围的源:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
组织范围的源:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
登录到 Azure DevOps 集合,然后导航到项目。
选择“ 项目”,然后从下拉菜单中选择源。
选择“ 连接到源”,然后从左侧导航窗格中选择 “货物 ”。
如果这是首次将 Cargo 与 Azure Artifacts 配合使用,请确保已安装 rustup。
将项目 设置 部分中提供的代码片段添加到 源存储库中的 .cargo/config.toml 文件:
项目范围的源:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
集合范围的源:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
配置凭据提供程序
若要将 Cargo 与 Azure Artifacts 配合使用,需要设置凭据提供程序。 提供的设置将为当前用户配置默认凭据帮助程序:
将以下代码片段粘贴到 %USERPROFILE%.cargo\config.toml 中:
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
登录到注册表
使用“打包”>“读取和写入”范围创建个人访问令牌,以便对源进行身份验证。
运行以下命令以登录到注册表。 将占位符替换为源的名称,并在出现提示时粘贴在上一步中创建的个人访问令牌:
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
从 Crates.io 保存包
注意
若要从上游保存包,必须具有 源和上游读取者(协作者) 角色或更高版本。 有关更多详细信息,请参阅 “管理权限 ”。
设置项目、配置凭据提供程序并登录到源后,我们可以开始从上游使用包。 Azure Artifacts 保存从上游安装到源的任何包的副本。
在此示例中,我们使用 serde
箱(序列化/反序列化框架):
在项目目录中运行以下命令,将箱添加到 cargo.toml:
cargo add serde
运行以下命令以生成项目并使用箱:
cargo build
安装包后,副本将保存到源。 导航到源以验证其状态。 程序包应在源中可用,如下所示: