diff --git a/lib/config/presets/internal/replacements.ts b/lib/config/presets/internal/replacements.ts
index 575107b37ad0b3ef51073c9b18db5ffa8f9a1d5e..e12d2beefd4b48abd34dbd1d3d06a12a6ab0a366 100644
--- a/lib/config/presets/internal/replacements.ts
+++ b/lib/config/presets/internal/replacements.ts
@@ -26,6 +26,8 @@ export const presets: Record<string, Preset> = {
       'replacements:react-scripts-ts-to-react-scripts',
       'replacements:renovate-pep440-to-renovatebot-pep440',
       'replacements:rollup-node-resolve-to-scoped',
+      'replacements:vso-task-lib-to-azure-pipelines-task-lib',
+      'replacements:vsts-task-lib-to-azure-pipelines-task-lib',
       'replacements:xmldom-to-scoped',
     ],
   },
@@ -619,6 +621,30 @@ export const presets: Record<string, Preset> = {
       },
     ],
   },
+  'vso-task-lib-to-azure-pipelines-task-lib': {
+    description:
+      'The `vso-task-lib` package is now published as `azure-pipelines-task-lib`.',
+    packageRules: [
+      {
+        matchDatasources: ['npm'],
+        matchPackageNames: ['vso-task-lib'],
+        replacementName: 'azure-pipelines-task-lib',
+        replacementVersion: '3.4.0',
+      },
+    ],
+  },
+  'vsts-task-lib-to-azure-pipelines-task-lib': {
+    description:
+      'The `vsts-task-lib` package is now published as `azure-pipelines-task-lib`.',
+    packageRules: [
+      {
+        matchDatasources: ['npm'],
+        matchPackageNames: ['vsts-task-lib'],
+        replacementName: 'azure-pipelines-task-lib',
+        replacementVersion: '3.4.0',
+      },
+    ],
+  },
   'xmldom-to-scoped': {
     description: 'The `xmldom` package is now published as `@xmldom/xmldom`.',
     packageRules: [