Blog>

Roi Sánchez
08 Jun 2023

Mi pipeline y mis dependencias de Artifacts

Tiempo de lectura 4 minutos
  • artifacts
  • azure devops
  • CI/CD
  • devops
  • Integración continua
  • pipelines

Sumario Si al ejecutar tu pipeline con maven y dependencias en tu artifacts te chocas con este error «Could not resolve dependencies [...] Could not transfer artifact [...] authorization failed for [...] status: 403 Forbidden - User [...] lacks permission to complete this action. You need to have 'ReadPackages'», entonces este es tu post.

En este artículo te vamos a enseñar como solucionar uno de los problemas típicos al ejecutar tu pipeline en AzureDevOps.

En nuestro caso tenemos un repositorio en un proyecto que publica artefactos en Azure Artifacts. En otro proyecto diferente y desde otro repo diferente tenemos estos artifacts como depedencia. Por lo tanto al ejecutar el pipeline de compilación con maven necesitemos poder descargarnos estas dependencias. El problema es que nuestro pipeline cuando intenta descargarse estos jars nos muestra el siguiente error:

Error ejecución pipeline

Vamos a ver la primera línea de error en su totalidad:

[ERROR] Failed to execute goal on project helloWorld: Could not resolve dependencies for project com.[...]-SNAPSHOT: Failed to collect dependencies at com[...]-SNAPSHOT: Failed to read artifact descriptor for com[...]-SNAPSHOT: Could not transfer artifact com[...]-SNAPSHOT from/to Ingrid (https://[...].pkgs.visualstudio.com/_packaging/[...]/maven/v1): authorization failed for https://[...].pkgs.visualstudio.com/_packaging/[...]/maven/v1/com[...]-SNAPSHOT/[...]-SNAPSHOT.pom, status: 403 Forbidden - User 'be8f1cfe[...]3' lacks permission to complete this action. You need to have 'ReadPackages'. (DevOps Activity ID: 4BEB4A79[...]9) -> [Help 1] 

Como vemos el problema, se debe a que el usuario que ejecuta la pipeline no tiene permisos para accedes y descargar los paquetes del artifacts. Así que sí, es un problema de configuración de permisos.

Pues vamos allá.

El primer paso es acceder a Artifacts dentro de Azure Devops.

En el desplegable de arriba a la izquierda selecciona el feed al que quieres acceder desde tu pipeline.

Accede a la configuración (engranaje de la parte superior) o feed settings

Accede a «Permissions»

En este punto tenemos que añadir el usuario Build Service de nuestro proyecto con permisos de Contribuitor.

Si buscamos directamente el usuario de nombre Build Service, el sistema no nos devolverá nada, por lo que para localizar el usuario debemos introducir el nombre del proyecto (con las primeras letras es suficiente) y cuando localicemos el usuario seleccionarlo.

Y con estos pasos, volvemos a ejecutar nuestra pipeline, y vemos que, al menos, este error ya no nos dá.

Autor

Roi Sánchez
Roi Sánchez

Desarrollador en dev&del

Capitán en Hello, World!

Capaz de gestionar un proyecto informático E2E (de principio a fin).

Los discos de vinilo y los tatuajes son dos de sus mayores pasiones.

¿Estás interesado?

Déjanos tus datos y contactaremos contigo lo antes posible