Share via


Configurar el comportamiento de nivel superior

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Con los orígenes ascendentes de Azure Artifacts, los desarrolladores obtienen la comodidad de usar una fuente unificada para publicar y consumir paquetes de fuentes de artefactos y registros públicos populares, como NuGet.org o npmjs.com. Anteriormente, las fuentes artifact combinaban una lista de versiones de paquete disponibles de la propia fuente y todos los orígenes ascendentes configurados.

Ilustración que muestra el contenido de una fuente.

El comportamiento ascendente es una característica que permite a los desarrolladores elegir si quieren consumir versiones de paquetes de origen externo. Controla qué paquetes son accesibles desde los registros públicos para paquetes específicos.

Una vez habilitado el comportamiento ascendente, cuando se publica un paquete en la fuente de Azure Artifacts, se bloquea cualquier versión del registro público y no está disponible para su descarga.

Este enfoque agrega una capa adicional de seguridad evitando la posible exposición a paquetes malintencionados que podrían haber infiltrado los registros públicos.

Sin embargo, los usuarios todavía pueden desactivar la configuración de comportamiento ascendente, lo que les permite consumir paquetes de los registros públicos si prefieren hacerlo.

Nota:

El nuevo comportamiento no afectará a ninguna versión de paquete que esté actualmente en uso, ya que se conservan dentro de la vista @local de la fuente.

Situaciones aplicables

En la sección siguiente se muestran varios escenarios comunes en los que se desencadena el comportamiento ascendente para bloquear las versiones de paquetes de origen externo y otros escenarios en los que no es necesario bloquear el acceso a los paquetes públicos.

Las versiones públicas están bloqueadas

Versión del paquete privado pública

En este escenario, un equipo tiene un paquete privado que se hizo público. El comportamiento ascendente en este caso se desencadenará para bloquear las nuevas versiones públicas (paquetes que no son de confianza).

Ilustración en la que se muestra una versión interna del paquete pública.

Tener paquetes privados y públicos

En este escenario, si un equipo usa una combinación de paquetes privados y públicos, al habilitar el comportamiento ascendente se bloquean las nuevas versiones de paquetes del registro público.

Ilustración en la que se muestran los paquetes privados y públicos disponibles.

No se bloquearán las versiones públicas

Todos los paquetes son privados*

Si todos los paquetes existentes son privados y el equipo no tiene planes de usar ningún paquete público, el nuevo comportamiento ascendente no tiene ningún efecto en el flujo de trabajo del equipo en este escenario.

Ilustración que muestra la fuente solo con paquetes privados.

Todos los paquetes son públicos

En este escenario, si el equipo consume exclusivamente paquetes públicos, ya sea desde el registro público u otros repositorios de código abierto, el nuevo comportamiento ascendente no afecta a su flujo de trabajo de ninguna manera.

Ilustración en la que se muestra la fuente solo con paquetes públicos.

Paquete público hecho privado

En esta situación, cuando se convierte un paquete público en un paquete privado, el nuevo comportamiento ascendente no afecta al flujo de trabajo del equipo de ninguna manera.

Ilustración que muestra un paquete convertido de público a privado.

Permitir versiones externas

Nota:

Debe ser propietario de fuente para permitir versiones de origen externo. Para obtener más información, consulte Permisos de fuente.

  1. Inicie sesión en su organización de Azure DevOps y vaya a su proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione la fuente en el menú desplegable.

  3. Seleccione el paquete y, a continuación, seleccione el botón de puntos suspensivos para obtener más opciones. Seleccione Permitir versiones de origen externo.

    Captura de pantalla que muestra cómo permitir versiones de origen externo.

  4. Seleccione el botón de alternancia para permitir versiones externas. Seleccione Cerrar cuando haya terminado.

    Captura de pantalla que muestra cómo habilitar versiones externas.

Permitir versiones externas mediante la API REST

Permitir versiones externas mediante PowerShell

  1. Cree un token de acceso personal con Empaquetado>de permisos de lectura, escritura y administración.

    Captura de pantalla que muestra cómo seleccionar permisos de empaquetado.

  2. Cree una variable de entorno para el token de acceso personal.

    $env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
    
  3. Convierta el token de acceso personal en cadena codificada en baser64 y construya el encabezado de solicitud HTTP.

    $token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar")))
    $headers = @{
        Authorization = "Basic $token"
    }
    
  4. Construya la dirección URL del punto de conexión. Ejemplo: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1

    • Fuente con ámbito de proyecto:

      $url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
      
    • Fuente con ámbito de la organización:

      $url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
      

Ejecute el siguiente comando para recuperar el estado de comportamiento ascendente del paquete. $url y $headers son las mismas variables que hemos usado en la sección anterior.

Invoke-RestMethod -Uri $url -Headers $headers