将内部源设置为上游源

Azure DevOps 服务 |Azure DevOps Server |Azure DevOps Server 2022

Azure Artifacts 上游源通过使开发人员能够将多个源中的包存储在单个源中来简化包管理。 当首次从上游源安装包时,Azure Artifacts 会自动将副本保存到您的订阅,以确保持续访问,即使上游源暂时不可用也是如此。 本教程逐步讲解如何将来自同一组织的内部源设置为 Azure Artifacts 中的上游源。

先决条件

产品 要求
Azure DevOps - 一个 Azure DevOps 组织
- Azure DevOps 项目

创建信息流

如果还没有源,请按照以下步骤创建一个源,并将公共注册表添加为上游源:

  1. 登录到 Azure DevOps 并转到项目。

  2. 选择 “项目”,然后选择“ 创建源”。

  3. 输入信息流的名称,然后选择适当的可见性范围设置。

  4. 选择“包括公共源”中的包,以将公共注册表添加为上游源。

  5. 完成操作后,选择“创建”

连接到信息流

使用以下步骤配置项目并使用源进行身份验证。 此示例使用 Rust 项目。 有关其他技术,请参阅以下部分中的项目设置链接。

  1. 登录到 Azure DevOps,并转到项目。

  2. 选择 “项目”,从下拉菜单中选择源,然后选择“ 连接到源”。

    显示如何从 Azure Artifacts 下拉列表中选择信息流的屏幕截图。

  3. 在左侧导航窗格中,选择 “货物”。

  4. “项目设置 ”部分中,复制第一个代码片段并将其添加到源存储库中的 cargo/config.toml 文件。 config.toml 文件应如下所示:

    [registries]
    FEED_NAME = { index = "sparse+https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/Cargo/index/" }
    
  5. 配置凭据提供程序

  6. 登录到注册表

其他包类型的项目设置

如果使用其他技术,请使用以下链接按照适合的项目设置指南连接到您的数据源:

设置上游馈送

按照以下步骤从与上游源相同的组织设置内部源:

  1. 登录到 Azure DevOps,然后导航到项目。

  2. 选择“项目”,然后从源下拉菜单中选择之前创建的源。

  3. 选择齿轮图标按钮齿轮图标 以导航到 动态消息设置

  4. 选择 上游源,然后选择“ 添加上游”。

  5. 类型选项卡上,选择此组织中的Azure Artifacts 资源

  6. “配置 ”选项卡上的“ ”下拉菜单中,选择要添加为上游源的源。 选择所需的 视图,然后选择要包括的 包类型, 并根据需要更新 上游源名称

  7. 完成后,选择“添加”

    显示如何在 Azure Artifacts 中将新的内部源添加为上游源的屏幕截图。

  8. 选择保存以应用更改。

    显示如何在 Azure Artifacts 中保存上游源的屏幕截图。

从上游安装包

以下示例演示了 Test_Feed 已将 CargoDemoFeed 配置为上游源的方案。 出于演示目的 ,Test_Feed 为空且不包含任何包。

当协作者(或更高级别)从上游CargoDemoFeed安装一个包,该包会被 Azure Artifacts 复制到下游Test_Feed并作为正常cargo install流程的一部分下载。 首次复制后,从 Test_Feed 包的所有将来下载仅需要 源读取器 (或更高)权限,因为这些以后的下载不会修改下游源。 只有第一个安装将包从上游复制到下游,因此,只有初始操作需要提升的权限。

  1. 登录到 Azure DevOps,然后导航到托管上游源的项目(在本示例中为 CargoDemoFeed)。

  2. 选择“工件”,然后从下拉菜单中选择上游源(CargoDemoFeed)。

  3. 找到要安装的包并记下其名称。 在此示例中, 原子唤醒器 是包名称。 还可以直接从 Azure Artifacts UI 中的下游源搜索上游包。 有关更多详细信息,请参阅 来自上游源的搜索包

  4. 导航到项目的根目录并打开 Cargo.toml。 在 [dependencies] 下添加包。 由于这是专用箱依赖项,因此必须在 Cargo.toml 文件中指定注册表名称。 货物假定 crates.io 为默认注册表,除非另有指定。 添加依赖项,如下所示:

    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
    # Example:
    # [dependencies]
    # atomic-waker = { version = "1.1.2", registry = "Test_Feed" }
    
  5. 打开本地命令提示符,导航到项目的根目录,然后运行以下命令以构建项目并下载 crate:

    cargo build
    
  6. 生成完成后,返回到 Azure DevOps>Artifacts 并选择消耗源(在本示例中, Test_Feed)。

  7. 验证本地安装的包现在是否显示在下游源中。 从上游源安装包时,Azure Artifacts 会自动保存包的副本。

    显示从 Azure Artifacts 内部上游保存的包的屏幕截图。