Skip to content

Azure DevOps and Azure DevOps Server


First, create a Personal Access Token for the bot account. Let Renovate use your PAT by doing one of the following:

  • Set your PAT as a token in your config.js file
  • Set your PAT as an environment variable RENOVATE_TOKEN
  • Set your PAT when you run Renovate in the CLI with --token=

Remember to set platform=azure somewhere in your Renovate config file.

Features awaiting implementation

  • The automergeStrategy configuration option has not been implemented for this platform, and all values behave as if the value auto was used. Renovate will use the merge strategy configured in the Azure Repos repository itself, and this cannot be overridden yet

Running Renovate in Azure Pipelines

Setting up a new pipeline

Create a brand new pipeline within Azure DevOps, and select your source: Azure DevOps create new pipeline

Then select your repository.

Within Configure your pipeline select: Starter pipeline Azure DevOps starter pipeline template

Replace all content in the starter pipeline with:

  - cron: '0 3 * * *'
    displayName: 'Every day at 3am'
      include: [main]
    always: true

trigger: none

  vmImage: ubuntu-latest

  - task: npmAuthenticate@0
      workingFile: .npmrc

  - bash: |
      git config --global ''
      git config --global 'Renovate Bot'
      npx --userconfig .npmrc renovate
      TOKEN: $(System.AccessToken)

Create a .npmrc file

Create a .npmrc file in your repository:


For the registry key, replace YOUR-ORG with your Azure DevOps organization and YOUR-FEED with your Azure Artifacts feed.

Create a config.js file

Create a config.js file in your repository:

module.exports = {
  platform: 'azure',
  endpoint: '',
  token: process.env.TOKEN,
  hostRules: [
      hostType: 'npm',
      matchHost: '',
      username: 'apikey',
      password: process.env.TOKEN,
  repositories: ['YOUR-PROJECT/YOUR-REPO'],

For the endpoint key, replace YOUR-ORG with your Azure DevOps organization. For the repositories key, replace YOUR-PROJECT/YOUR-REPO with your Azure DevOps project and repository.

Yarn users

To do a successful yarn install you need to match the URL of the registry fully. Use the matchHost config option to specify the full path to the registry.

module.exports = {
  platform: 'azure',
  endpoint: '',
  token: process.env.TOKEN,
  hostRules: [
      token: process.env.TOKEN,
      hostType: 'npm',
      matchHost: '',
      token: process.env.GITHUB_COM_TOKEN,
  repositories: ['YOUR-PROJECT/YOUR-REPO'],

Put this in your repository's .npmrc file:


Add renovate.json file

Additionally, you can create a renovate.json file (which holds the Renovate configuration) in the root of the repository you want to update. Read more about the Renovate configuration options

Using a single pipeline to update multiple repositories

If you want to use a single Renovate pipeline to update multiple repositories you must take the following steps.

Add the names of the repositories to config.js. Make sure that the "Project Collection Build Service (YOUR-PROJECT)" user has the following permissions on the repositories:

  • Contribute
  • Contribute to pull requests
  • Create branch

Open items

The below list of features and bugs were current when this page was generated on March 30, 2023.

Feature requests

  • Azure Container Registry Managed Identity #20200
  • Support changelogs from Azure DevOps #18324
  • Azure Devops: if autoApprove is on, reapprove PR if necessary #15664
  • Implement the explicit automergeStrategy for the Azure DevOps platform. #10851
  • Allow configuration to be stored in .azuredevops #10651
  • Add connection check for Azure platform init #9593
  • Support issues for Azure platform #9592
  • Possibility to set mergeType when using azureAutoComplete #7310
  • Select which status checks to apply for automerge in Azure Devops #4822

Bug reports

  • Referencing a preset on Azure DevOps with space in project name doesn't work #14800
  • [Azure DevOps] Renovate hangs after getProjectAndRepo step #14438
  • Reactivating an ignored PR in Azure DevOps doesn't work when using the provided directions for renaming #13469