Configura una fuente interna como fuente ascendente

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Las fuentes ascendentes de Azure Artifacts simplifican la administración de paquetes al permitir a los desarrolladores almacenar paquetes de varios orígenes en un solo flujo. Cuando un paquete se instala por primera vez desde una fuente upstream, Azure Artifacts guarda automáticamente una copia en tu feed para garantizar el acceso continuo, incluso si la fuente upstream deja de estar disponible temporalmente. En este tutorial se explica cómo configurar un feed interno de la misma organización para que actúe como un origen ascendente en Azure Artifacts.

Prerrequisitos

Producto Requisitos
Azure DevOps - Una organización de Azure DevOps .
- Un proyecto de Azure DevOps .

Crear una fuente

Si aún no tiene un feed, siga estos pasos para crear uno nuevo y agregar registros públicos comunes como fuentes ascendentes.

  1. Inicie sesión en Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, después, Crear flujo.

  3. Escriba un nombre para la fuente y elija la configuración de visibilidad y ámbito adecuadas.

  4. Seleccione Incluir paquetes de orígenes públicos comunes para agregar registros públicos comunes como orígenes ascendentes.

  5. Seleccione Crear cuando haya terminado.

Conexión a la fuente

Sigue estos pasos para configurar tu proyecto y autenticarte con tu feed. En este ejemplo se usa un proyecto de Rust. Para otras tecnologías, consulte los vínculos de configuración del proyecto en la sección siguiente.

  1. Inicie sesión en Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos, elija su feed en el menú desplegable y, a continuación, seleccione Conectar al feed.

    Captura de pantalla que muestra cómo seleccionar una fuente en la lista desplegable de Azure Artifacts.

  3. En el panel de navegación izquierdo, seleccione Cargo.

  4. En la sección Configuración del proyecto , copie el primer fragmento de código y agréguelo al archivo cargo/config.toml en el repositorio de origen. El archivo config.toml debe ser similar al siguiente:

    [registries]
    FEED_NAME = { index = "sparse+https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/Cargo/index/" }
    
  5. Configuración de un proveedor de credenciales

  6. Inicie sesión en el Registro.

Configuración del proyecto para otros tipos de paquete

Si está utilizando una tecnología diferente, use los enlaces siguientes para seguir las instrucciones adecuadas para la configuración del proyecto y conectarse a su feed:

Configurar el flujo ascendente

Siga estos pasos para configurar una fuente interna de la misma organización como una fuente ascendente:

  1. Inicie sesión en Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y luego seleccione el feed que creó anteriormente en el menú desplegable de feeds.

  3. Seleccione el icono de engranajeicono de engranaje para ir a Configuración de fuente.

  4. Seleccione Fuentes ascendentes y, después, Agregar fuente ascendente.

  5. En la pestaña Tipo, seleccione el feed de Azure Artifacts de esta organización.

  6. En la pestaña Configuración , en el menú desplegable Fuente , seleccione la fuente que desea agregar como origen ascendente. Seleccione la vista deseada y, a continuación, elija los tipos de paquete que desea incluir y, opcionalmente, actualice el nombre de origen ascendente.

  7. Seleccione Agregar cuando haya terminado.

    Captura de pantalla que muestra cómo agregar una nueva fuente interna como origen ascendente en Azure Artifacts.

  8. Seleccione Guardar para aplicar los cambios.

    Captura de pantalla que muestra cómo guardar orígenes ascendentes en Azure Artifacts.

Instalación de paquetes desde la cadena ascendente

En el ejemplo siguiente se muestra un escenario en el que Test_Feed tiene CargoDemoFeed configurado como origen ascendente. Para fines de demostración Test_Feed está vacío y no contiene paquetes.

Cuando un colaborador (o superior) instala un paquete desde Test_Feed que está disponible en el upstream CargoDemoFeed, Azure Artifacts copia ese paquete en el downstream Test_Feed y lo descarga como parte del flujo normal cargo install. Después de esta primera copia, todas las descargas futuras de ese paquete de Test_Feed solo requieren permisos lector de fuentes (o superior), ya que esas descargas posteriores no modifican la fuente de bajada. Solo la primera instalación copia el paquete de nivel superior a descendente, por lo que solo la acción inicial requiere permisos elevados.

  1. Inicie sesión en Azure DevOps y vaya al proyecto que hospeda el feed upstream (en este ejemplo, CargoDemoFeed).

  2. Seleccione Artifacts y, después, en el menú desplegable, seleccione el flujo ascendente (CargoDemoFeed).

  3. Busque el paquete que desea instalar y anote su nombre. En este ejemplo, atomic-waker es el nombre del paquete. También puede buscar paquetes ascendentes directamente desde su fuente descendente en la interfaz de usuario de Azure Artifacts. Consulte paquetes de búsqueda de fuentes ascendentes con vista a obtener más detalles.

  4. Vaya a la raíz del proyecto y abra el archivo Cargo.toml. Agregue el paquete en [dependencias]. Como se trata de una dependencia de crate privado, debe especificar el nombre del registro en el archivo Cargo.toml. Cargo asume crates.io como registro predeterminado a menos que se especifique lo contrario. Agregue la dependencia de la siguiente manera:

    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
    # Example:
    # [dependencies]
    # atomic-waker = { version = "1.1.2", registry = "Test_Feed" }
    
  5. Abra un símbolo del sistema local, navegue a la raíz de su proyecto y ejecute el siguiente comando para compilar su proyecto y descargar el crate:

    cargo build
    
  6. Una vez completada la compilación, vuelva a Azure DevOps>Artifacts y seleccione la fuente de consumo (en este ejemplo, Test_Feed).

  7. Compruebe que el paquete que instaló localmente ahora aparece en su canal de distribución. Azure Artifacts guarda automáticamente una copia del paquete cuando se instala desde un origen ascendente.

    Captura de pantalla que muestra un paquete guardado desde una cadena ascendente interna en Azure Artifacts.