Dentro de la característica de artefactos de Azure DevOps podemos crear nuestros propios feeds de paquetes nuget para organizar nuestros componentes y reutilizarlos.
Acceder al feed
La pregunta es cómo hacer para desde nuestro entorno local Visual Studio o Visual Studio Code o mejor dicho el compilador de .NET pueda acceder al feed.
Para esto necesita como mínimo conocer la URL del feed, esto se obtiene fácilmente desde Azure DevOps, vamos al feed y presionando el botón“Connect to feed” vemos la URL.
Obtener credenciales de acceso al feed.
Con la URL mucho no vamos a poder hacer si no tenemos permisos de acceso, dentro de Azure DevOps esto se logra creando tokens de acceso a nivel usuario. Es por esto vamos directamente a la configuración de seguridad del usuario.
Y vamos a la parte de security tokens.
En la sección “Personal access token” seleccionamos “New Token”, definimos nombre y la duración y lo más importante, el scope.
El scope nos permite definir para qué puede ser usado el token y solo para eso, en este caso le daremos un único scope, que será Packaging.Read.
Por defecto este scope no se ve por defecto hasta que hagamos click sobre el link debajo que dice “Show all”.
Ventaja de los tokens:
- Usar tokens en lugar de usar el password tiene varias ventajas, vamos a enumerarlas
- Podemos usarlo en un entorno sin poner en riesgo el password.
- Tienen un acceso limitado a los recursos, por ejemplo los feeds.
- Tienen un vencimiento definido, con lo cual si lo perdemos lo borramos y listo.
Paso final, crear el Nuget.config
Con estos datos lo último que tenemos que hacer es ponerlos en un archivo que colocaremos a nivel de nuestra solución, el formato del archivo es el siguiente (es un xml):
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="Azure" value="https://pkgs.dev.azure.com/leomicheloni/_packaging/MyNuget/nuget/v3/index.json" /> </packageSources> <packageSourceCredentials> <Azure> <add key="Username" value="mail@mail.com" /> <add key="ClearTextPassword" value="prrryxncm6drvvruhmrph3rm5jiwrpp73viemx4n3kdo6dxwzlita" /> </Azure> </packageSourceCredentials> </configuration>
Pueden descargar un ejemplo de un Nuget.config desde acá.
Y con esto tenemos acceso a nuestro feed, nos leemos.
Leonardo.