Azure Nuget Artifact not visible in UiPath package manager

Hi

I’ve made an azure artifact nuget feed.
I pasted the URL in the add feed in UiPath studio - but the packages wont show.
the same feed url works flawlessly in Visual stuio package manager.

I’ve named my nuget package Test.Activities.
If i download the package i can add it to studio manually.

my best guess is that i’m missing to login or handle an auth request of some sort… but i cannot find any information on this…

any clues or pointers are welcome :slight_smile:

2 Likes

I’m also interested in this. Can’t find any documentation on this anywhere.

Same here. I have created a test nuget package having a simple class to be used within UIPath scope. When doing the steps locally (creating dll in release from Visual Studio Solution / creating nuget package / adding package to UIPath folder / adding package in “manage package” window in UIPath), it works like a charm.

But, when using Azure Devops (formerly VSTS), linking the azure artifact package feed to my local and trying to link it, the package simple does not show in my UIPath window (image below).

As you can see, the nuget server is detected by uipath, but not the package itself. Have you guys added support for this?

Thanks

1 Like

+1. I will be keen to understand this as well.

1 Like

Hi @Gerardo

Could you share the url of your feed? We would like to test it a bit more. It should normally work.
You can share it in a private message.

Hi @ksjnovaro @Einar_Brandsson @Gerardo @Sayan_Ghosh

I double checked and it seems that nuget feeds requiring authentication are currently not supported by Studio.
However, it is quite a reasonable feature request and as such I added it to our list of features that will be considered for future releases :slight_smile:

NuGet has a pretty standard protocol…? There’s a Nuget config file where you can enter credentials or API key like any other Nuget fed application - something wrong must be done when you connect to feeds in studio using the nuget config file…

if anyone has a hack or something to make this work, please do share :slight_smile: opening up our nuget feed to the whole internet is of course not an option.

1 Like

Hi @ksjnovaro

Authentication via credentials is not currently supported. However, it is possible to access it by using an API key.

See comments below that it is indeed possible :slight_smile:

Is that documented anywhere? Examples perhaps? I’ve tried it all…

After a lot of digging, I found a cute little paragraph in our documentation that should help you :slight_smile:

See here:

And the paragraph in question:

If you want to add a custom NuGet feed that requires authentication, you can follow the steps explained here, and properly add the NuGet feed, username and password values in the NuGet.config file, located at the following path: %AppData%\NuGet . When it’s done, the feed should be visible in the Package Manager .

I hope it helps :slight_smile:

3 Likes

Hi everyone, UiPath Studio supports secure feeds. Just follow the documentation and you should be able to configure your NuGet Feeds with API Key or Credentials (username/password). Studio will receive a UI upgrade in the future so that you can add these directly in the UI.

2 Likes

Ok, i’ve tried what you suggested already…

my nuget config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSourceCredentials>
     <MyFeed>
        <add key="Username" value="MyMail" />
        <add key="ClearTextPassword" value="MyPassword" />
    </MyFeed>   
</packageSourceCredentials>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="MyFeed" value="MyFeedUrl" />
    <add key="Downloads folder" value="C:\Users\Me\Downloads" />
  </packageSources>
</configuration>

My studio logged exception:

    13:17:30.5549 => [DEBUG] [StudioTraceListener] [7] NuGet.Protocol.Core.Types.FatalProtocolException: Unable to load the service index for source URL-hidden-by-forum-staff. ---> System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at NuGet.Protocol.HttpSource.<>c__DisplayClass14_0`1.<<GetAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Common.ConcurrencyUtilities.<ExecuteWithFileLockedAsync>d__2`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.HttpSource.<GetAsync>d__14`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
   --- End of inner exception stack trace ---
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<GetServiceIndexResourceV3>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.ServiceIndexResourceV3Provider.<TryCreate>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.PackageSearchResourceV3Provider.<TryCreate>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at NuGet.Protocol.Core.Types.SourceRepository.<GetResourceAsync>d__16`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at UiPath.PackageExplorer.Core.Services.SingleFeedSearchService.<GetSearchService>d__10.MoveNext() in D:\a\1\s\Studio\UiPath.PackageExplorer.Core\Services\SingleFeedSearchService.cs:line 126
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at UiPath.PackageExplorer.Core.Services.SingleFeedSearchService.<SearchAsync>d__7.MoveNext() in D:\a\1\s\Studio\UiPath.PackageExplorer.Core\Services\SingleFeedSearchService.cs:line 44

any clues on what im doing wrong here? error message does not help much…
the provided mail and password is administrator in the TFS source.

Hi @ksjnovaro

This is strange, as it looks proper.

I hope @carlos_hxc can chime in a bit, as it seems he’s solved it with the same solution:

1 Like

@loginerror @MirceaGrigore Thank you very much. Worked flawlessly.

Could i see your config?

Sure:

1 Like

Will have to remember this for when we upgrade.
This might be useful for keeping a repository of re-usable libraries, rather than a shared network location.

1 Like

Hey Gerado

Your “User” in username, is that your azure email or?

if you access your nuget feed URL in the browser, what is the response like?

  1. Yes, azure e-mail in my case.
  2. The actual json response, provided by the browser (please note you need to have proper browser access through authentication first)
1 Like

Still no luck… :frowning: