diff --git a/lib/workers/repository/extract/file-match.js b/lib/workers/repository/extract/file-match.js
index 1b9540bcc7add08300e073e3a5cc2c466a9fb4f0..34f8a17bafb40ce8e0e5b1950a3f77bb16dca800 100644
--- a/lib/workers/repository/extract/file-match.js
+++ b/lib/workers/repository/extract/file-match.js
@@ -37,5 +37,9 @@ function getMatchingFiles(fileList, manager, fileMatch) {
       fileList.filter(file => file.match(new RegExp(match)))
     );
   }
+  // filter out duplicates
+  matchedFiles = matchedFiles.filter(
+    (item, pos) => matchedFiles.indexOf(item) === pos
+  );
   return matchedFiles;
 }
diff --git a/test/workers/repository/extract/__snapshots__/file-match.spec.js.snap b/test/workers/repository/extract/__snapshots__/file-match.spec.js.snap
index 9abbb3dc652385cd1359453a2181dd36abaf3652..c29ace47acfde1b3ae50af53de05cab8557d9747 100644
--- a/test/workers/repository/extract/__snapshots__/file-match.spec.js.snap
+++ b/test/workers/repository/extract/__snapshots__/file-match.spec.js.snap
@@ -24,6 +24,13 @@ Array [
 ]
 `;
 
+exports[`workers/repository/extract/file-match getMatchingFiles() deduplicates 1`] = `
+Array [
+  "package.json",
+  "frontend/package.json",
+]
+`;
+
 exports[`workers/repository/extract/file-match getMatchingFiles() returns npm files 1`] = `
 Array [
   "package.json",
diff --git a/test/workers/repository/extract/file-match.spec.js b/test/workers/repository/extract/file-match.spec.js
index 8a1ace151080133cfd741525db4296b4784dcb20..65822da6622a7ddbe92ff71a43a9082100e19036 100644
--- a/test/workers/repository/extract/file-match.spec.js
+++ b/test/workers/repository/extract/file-match.spec.js
@@ -47,5 +47,14 @@ describe('workers/repository/extract/file-match', () => {
       expect(res).toMatchSnapshot();
       expect(res).toHaveLength(2);
     });
+    it('deduplicates', () => {
+      fileList.push('Dockerfile');
+      const res = fileMatch.getMatchingFiles(fileList, 'npm', [
+        '(^|/)package.json$',
+        'package.json',
+      ]);
+      expect(res).toMatchSnapshot();
+      expect(res).toHaveLength(2);
+    });
   });
 });