From 5949f39773de07f04665ef0d2bdb98dbb7756289 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Mon, 29 Mar 2021 21:52:21 +0200
Subject: [PATCH] fix(npm): use configured npmrc (#9319)

---
 lib/manager/npm/extract/__snapshots__/index.spec.ts.snap | 2 +-
 lib/manager/npm/extract/index.spec.ts                    | 4 ++--
 lib/manager/npm/extract/index.ts                         | 5 +++--
 lib/manager/types.ts                                     | 1 +
 lib/util/cache/repository/index.ts                       | 2 +-
 5 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
index 035deb0bc1..bff6a74c01 100644
--- a/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
+++ b/lib/manager/npm/extract/__snapshots__/index.spec.ts.snap
@@ -882,7 +882,7 @@ Object {
     "lernaJsonFile": undefined,
   },
   "npmLock": undefined,
-  "npmrc": undefined,
+  "npmrc": "",
   "packageFile": "package.json",
   "packageFileVersion": "1.0.0",
   "packageJsonName": "renovate",
diff --git a/lib/manager/npm/extract/index.spec.ts b/lib/manager/npm/extract/index.spec.ts
index 8a4f2cc684..69ac38e6cb 100644
--- a/lib/manager/npm/extract/index.spec.ts
+++ b/lib/manager/npm/extract/index.spec.ts
@@ -80,7 +80,7 @@ describe('manager/npm/extract', () => {
       const res = await npmExtract.extractPackageFile(
         input01Content,
         'package.json',
-        defaultConfig
+        { ...defaultConfig, npmrc: 'some-npmrc' }
       );
       expect(res).toMatchSnapshot();
     });
@@ -94,7 +94,7 @@ describe('manager/npm/extract', () => {
       const res = await npmExtract.extractPackageFile(
         input01Content,
         'package.json',
-        defaultConfig
+        { ...defaultConfig, ignoreNpmrcFile: true }
       );
       expect(res).toMatchSnapshot();
     });
diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts
index 56bb8e110e..88fcc5a2e5 100644
--- a/lib/manager/npm/extract/index.ts
+++ b/lib/manager/npm/extract/index.ts
@@ -92,8 +92,9 @@ export async function extractPackageFile(
 
   let npmrc: string;
   const npmrcFileName = getSiblingFileName(fileName, '.npmrc');
-  // istanbul ignore if
-  if (config.ignoreNpmrcFile) {
+  if (is.string(config.npmrc)) {
+    logger.debug('Using configured npmrc');
+  } else if (config.ignoreNpmrcFile) {
     npmrc = '';
   } else {
     npmrc = await readLocalFile(npmrcFileName, 'utf8');
diff --git a/lib/manager/types.ts b/lib/manager/types.ts
index cd70ded364..600fb7b300 100644
--- a/lib/manager/types.ts
+++ b/lib/manager/types.ts
@@ -24,6 +24,7 @@ export interface ExtractConfig extends ManagerConfig {
   gradle?: { timeout?: number };
   aliases?: Record<string, string>;
   ignoreNpmrcFile?: boolean;
+  npmrc?: string;
   yarnrc?: string;
   skipInstalls?: boolean;
   versioning?: string;
diff --git a/lib/util/cache/repository/index.ts b/lib/util/cache/repository/index.ts
index 830d4a57b4..adfdab5d37 100644
--- a/lib/util/cache/repository/index.ts
+++ b/lib/util/cache/repository/index.ts
@@ -9,7 +9,7 @@ import type { PackageFile } from '../../../manager/types';
 import type { RepoInitConfig } from '../../../workers/repository/init/common';
 
 // Increment this whenever there could be incompatibilities between old and new cache structure
-export const CACHE_REVISION = 6;
+export const CACHE_REVISION = 7;
 
 export interface BaseBranchCache {
   sha: string; // branch commit sha
-- 
GitLab