Tutorial: How to use upstream sources

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

Using upstream sources in your feed enables you to manage your application dependencies from a single feed. Using upstream sources makes it easy to consume packages from public registries while having protection against outages or compromised packages. You can also publish your own packages to the same feed and manage all your dependencies in one location.

This tutorial will walk you through how to enable upstream sources on your feed and consume packages from public registries such as NuGet.org or npmjs.com.

In this tutorial, you will:

  • Create a new feed and enable upstream sources.
  • Set up your configuration file.
  • Run an initial package restore to populate your feed.
  • Check your feed to view the saved copy of the packages you consumed from the public registry.

Create a feed and enable upstream sources

  1. Select Artifacts.

    Screenshot showing how to navigate to Azure Artifacts.

  1. Select Build & Release, and then select Packages.

    Screenshot showing how to navigate to Azure Artifacts - TFS.

  1. Select Create Feed to create a new feed.

    Screenshot showing the create feed button.

  1. Select New Feed to create a new feed.

    Screenshot showing the create feed button - TFS.

  1. Provide a name for your feed, and then select its visibility. Make sure your check the Include packages from common public sources checkbox to enable upstream sources. Select Create when you are done

    Screenshot showing the create a new feed window.

  1. Provide a name for your feed, and then select its visibility. Make sure your check the Include packages from common public sources checkbox to enable upstream sources. Select Create when you are done

    Screenshot showing the create a new feed window - TFS.

Set up the configuration file

Now that we created our feed, we need to update the config file to point to our feed. To do this we must:

  1. Get the source's URL
  2. Update the configuration file
  1. Select Artifacts, and then select Connect to feed.

    Screenshot showing how to connect to a feed.

  2. On the left side of the page, select the npm tab.

  3. Follow the instructions in the Project setup section to set up your config file.

    Screenshot showing how to set up your project.

  1. Select Build & Release > Packages, and then select Connect to Feed.

    Screenshot showing how to connect to a feed - TFS

  2. Copy the highlighted snippet to add it to your config file.

    Screenshot highlighting the snippet to be added to the config file - TFS

If you don't have a .npmrc file already, create a new one in the root of your project (in the same folder as your package.json). Open your new .npmrc file and paste the snippet you just copied in the previous step.

Restore packages

Now that you enabled upstream sources and set up your configuration file, we can run the package restore command to query the upstream source and retrieve the upstream packages.

We recommend clearing your local cache first before running the nuget restore. Azure Artifacts will have a saved copy of any packages you installed from upstream.

Remove the node_modules folder from your project and run the following command in an elevated command prompt window:

npm install --force

Note

The --force argument will force pull remotes even if a local copy exists.

Your feed now should contain any packages you saved from the upstream source.