From 3de02c37e4c40081d2c849e7766b8c8510c4a15f Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 22 May 2021 15:24:35 +0200
Subject: [PATCH] fix(yarn): sub package use root npmrc

---
 lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap | 4 ++++
 lib/manager/npm/extract/monorepo.spec.ts                    | 1 +
 lib/manager/npm/extract/monorepo.ts                         | 2 ++
 3 files changed, 7 insertions(+)

diff --git a/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap b/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
index 8df2450e0f..b9a7056544 100644
--- a/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
+++ b/lib/manager/npm/extract/__snapshots__/monorepo.spec.ts.snap
@@ -168,6 +168,8 @@ Array [
 exports[`manager/npm/extract/monorepo .extractPackageFile() uses yarn workspaces package settings without lerna 1`] = `
 Array [
   Object {
+    "npmrc": "@org:registry=//registry.some.org
+",
     "packageFile": "package.json",
     "yarnWorkspacesPackages": "packages/*",
   },
@@ -178,6 +180,8 @@ Array [
       "lernaJsonFile": undefined,
     },
     "npmLock": undefined,
+    "npmrc": "@org:registry=//registry.some.org
+",
     "packageFile": "packages/a/package.json",
     "packageJsonName": "@org/a",
     "yarnLock": "yarn.lock",
diff --git a/lib/manager/npm/extract/monorepo.spec.ts b/lib/manager/npm/extract/monorepo.spec.ts
index 9f796c52e4..d892416541 100644
--- a/lib/manager/npm/extract/monorepo.spec.ts
+++ b/lib/manager/npm/extract/monorepo.spec.ts
@@ -139,6 +139,7 @@ describe(getName(), () => {
       const packageFiles = [
         {
           packageFile: 'package.json',
+          npmrc: '@org:registry=//registry.some.org\n',
           yarnWorkspacesPackages: 'packages/*',
         },
         {
diff --git a/lib/manager/npm/extract/monorepo.ts b/lib/manager/npm/extract/monorepo.ts
index cdb9cfe6bd..1181375a66 100644
--- a/lib/manager/npm/extract/monorepo.ts
+++ b/lib/manager/npm/extract/monorepo.ts
@@ -17,6 +17,7 @@ export async function detectMonorepos(
       packageFile,
       npmLock,
       yarnLock,
+      npmrc,
       managerData = {},
       lernaClient,
       lernaPackages,
@@ -52,6 +53,7 @@ export async function detectMonorepos(
         subPackage.npmLock = subPackage.npmLock || npmLock;
         if (subPackage.yarnLock) {
           subPackage.hasYarnWorkspaces = !!yarnWorkspacesPackages;
+          subPackage.npmrc = subPackage.npmrc || npmrc;
         }
         if (!updateInternalDeps) {
           subPackage.deps?.forEach((dep) => {
-- 
GitLab