diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js
index c373647e1b6dfb50991d1fd4ab4f3f97879203d2..981a2dfc54a6f295f1cf9c09465af1962dc7a47d 100644
--- a/lib/util/package-rules.js
+++ b/lib/util/package-rules.js
@@ -13,6 +13,7 @@ function applyPackageRules(inputConfig) {
     versionScheme,
     packageFile,
     depType,
+    depTypes,
     depName,
     currentValue,
     fromVersion,
@@ -71,7 +72,9 @@ function applyPackageRules(inputConfig) {
       negativeMatch = negativeMatch || !isMatch;
     }
     if (depTypeList.length) {
-      const isMatch = depTypeList.includes(depType);
+      const isMatch =
+        depTypeList.includes(depType) ||
+        (depTypes && depTypes.some(dt => depTypeList.includes(dt)));
       positiveMatch = positiveMatch || isMatch;
       negativeMatch = negativeMatch || !isMatch;
     }
diff --git a/test/util/package-rules.spec.js b/test/util/package-rules.spec.js
index 0f195024c9c391ebc48e993cbc72edc2a516ee04..b060d924b50707a20c8e5a80e24e17559e256232 100644
--- a/test/util/package-rules.spec.js
+++ b/test/util/package-rules.spec.js
@@ -120,6 +120,23 @@ describe('applyPackageRules()', () => {
     const res = applyPackageRules({ ...config, ...dep });
     expect(res.x).toBe(1);
   });
+  it('filters depTypes', () => {
+    const config = {
+      packageRules: [
+        {
+          depTypeList: ['test'],
+          packageNames: ['a'],
+          x: 1,
+        },
+      ],
+    };
+    const dep = {
+      depTypes: ['build', 'test'],
+      depName: 'a',
+    };
+    const res = applyPackageRules({ ...config, ...dep });
+    expect(res.x).toBe(1);
+  });
   it('filters managers with matching manager', () => {
     const config = {
       packageRules: [