El secreto del Nuget
Dentro de los desafíos que me he encontrado, fue resolver de forma segura de trabajar con Nuget dentro de los proyecto de NetCore, en este caso de la versión 8. Si estás leyendo este post, es porque debes tener la misma necesidad o por simple curiosidad.
¿Pero de qué hablo cuando digo de forma segura?
Los proyectos de .NetCore declara la configuración del feed de Nuget en un archivo del tipo .xml llamado nuget.conf, el cual declaramos la url del feed y las credenciales!
Necesitaba automatizar la creación de packages via Azure Devops, entonces me puse a investigar de qué forma podría automatizar el mismo sin necesidad de declarar credenciales en el archivo mencionado. Como ambos productos son de Microsoft, la integración es relativamente rápida pero no fácil, ya que no existe una documentación muy clara y accesible.
Primero, debemos editar nuestro archivo Nuget con la siguiente configuración:
Acá, se parametriza los valores de username y password porque el feed de Nuget esta dentro de nuestro proyecto de ADO. Siendo necesario accesos para el mismo.
Para obtener las credenciales, vamos a utilizar un task de ADO llamada NuGetAuthenticate@1. Esta task, nos permite negociar un token para nuestro feed.
Pero para que realmente funcione, tenemos que asignar permisos al usuario Project Collection Build como Contributor, dentro de los permisos del Feed. Este es el encargado de autenticar dentro del agente.
Una vez que tenemos asignado este permiso, podemos interactuar con el feed dentro del pipeline, por ejemplo realizar un dotnet restore/build o publish.
Espero que le haya servido!