Skip to content

Commit 0d7255e

Browse files
authored
fix(manager/npm): Revert "fix(manager/npm): search for npmrc in the root directory" (renovatebot#36049)
1 parent ca43169 commit 0d7255e

File tree

3 files changed

+30
-90
lines changed

3 files changed

+30
-90
lines changed

lib/modules/manager/npm/extract/index.spec.ts

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -188,14 +188,6 @@ describe('modules/manager/npm/extract/index', () => {
188188
});
189189

190190
it('finds and filters .npmrc', async () => {
191-
fs.findLocalSiblingOrParent.mockImplementation(
192-
(packageFile, configFile): Promise<string | null> => {
193-
if (packageFile === 'package.json' && configFile === '.npmrc') {
194-
return Promise.resolve('.npmrc');
195-
}
196-
return Promise.resolve(null);
197-
},
198-
);
199191
fs.readLocalFile.mockImplementation((fileName): Promise<any> => {
200192
if (fileName === '.npmrc') {
201193
return Promise.resolve('save-exact = true\npackage-lock = false\n');
@@ -210,15 +202,6 @@ describe('modules/manager/npm/extract/index', () => {
210202
expect(res?.npmrc).toBe('save-exact = true\n');
211203
});
212204

213-
it('uses config.npmrc if no .npmrc is returned from search', async () => {
214-
const res = await npmExtract.extractPackageFile(
215-
input01Content,
216-
'package.json',
217-
{ ...defaultExtractConfig, npmrc: 'config-npmrc' },
218-
);
219-
expect(res?.npmrc).toBe('config-npmrc');
220-
});
221-
222205
it('uses config.npmrc if no .npmrc exists', async () => {
223206
fs.readLocalFile.mockResolvedValueOnce(null);
224207
const res = await npmExtract.extractPackageFile(
@@ -230,14 +213,6 @@ describe('modules/manager/npm/extract/index', () => {
230213
});
231214

232215
it('uses config.npmrc if .npmrc does exist but npmrcMerge=false', async () => {
233-
fs.findLocalSiblingOrParent.mockImplementation(
234-
(packageFile, configFile): Promise<string | null> => {
235-
if (packageFile === 'package.json' && configFile === '.npmrc') {
236-
return Promise.resolve('.npmrc');
237-
}
238-
return Promise.resolve(null);
239-
},
240-
);
241216
fs.readLocalFile.mockImplementation((fileName): Promise<any> => {
242217
if (fileName === '.npmrc') {
243218
return Promise.resolve('repo-npmrc\n');
@@ -253,14 +228,6 @@ describe('modules/manager/npm/extract/index', () => {
253228
});
254229

255230
it('merges config.npmrc and repo .npmrc when npmrcMerge=true', async () => {
256-
fs.findLocalSiblingOrParent.mockImplementation(
257-
(packageFile, configFile): Promise<string | null> => {
258-
if (packageFile === 'package.json' && configFile === '.npmrc') {
259-
return Promise.resolve('.npmrc');
260-
}
261-
return Promise.resolve(null);
262-
},
263-
);
264231
fs.readLocalFile.mockImplementation((fileName): Promise<any> => {
265232
if (fileName === '.npmrc') {
266233
return Promise.resolve('repo-npmrc\n');
@@ -276,14 +243,6 @@ describe('modules/manager/npm/extract/index', () => {
276243
});
277244

278245
it('finds and filters .npmrc with variables', async () => {
279-
fs.findLocalSiblingOrParent.mockImplementation(
280-
(packageFile, configFile): Promise<string | null> => {
281-
if (packageFile === 'package.json' && configFile === '.npmrc') {
282-
return Promise.resolve('.npmrc');
283-
}
284-
return Promise.resolve(null);
285-
},
286-
);
287246
fs.readLocalFile.mockImplementation((fileName): Promise<any> => {
288247
if (fileName === '.npmrc') {
289248
return Promise.resolve(

lib/modules/manager/npm/extract/index.ts

Lines changed: 30 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -88,42 +88,40 @@ export async function extractPackageFile(
8888
}
8989

9090
let npmrc: string | undefined;
91-
const npmrcFileName = await findLocalSiblingOrParent(packageFile, '.npmrc');
92-
if (npmrcFileName) {
93-
let repoNpmrc = await readLocalFile(npmrcFileName, 'utf8');
94-
if (is.string(repoNpmrc)) {
95-
if (is.string(config.npmrc) && !config.npmrcMerge) {
91+
const npmrcFileName = getSiblingFileName(packageFile, '.npmrc');
92+
let repoNpmrc = await readLocalFile(npmrcFileName, 'utf8');
93+
if (is.string(repoNpmrc)) {
94+
if (is.string(config.npmrc) && !config.npmrcMerge) {
95+
logger.debug(
96+
{ npmrcFileName },
97+
'Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false',
98+
);
99+
npmrc = config.npmrc;
100+
} else {
101+
npmrc = config.npmrc ?? '';
102+
if (npmrc.length) {
103+
if (!npmrc.endsWith('\n')) {
104+
npmrc += '\n';
105+
}
106+
}
107+
if (repoNpmrc?.includes('package-lock')) {
108+
logger.debug('Stripping package-lock setting from .npmrc');
109+
repoNpmrc = repoNpmrc.replace(
110+
regEx(/(^|\n)package-lock.*?(\n|$)/g),
111+
'\n',
112+
);
113+
}
114+
if (repoNpmrc.includes('=${') && !GlobalConfig.get('exposeAllEnv')) {
96115
logger.debug(
97116
{ npmrcFileName },
98-
'Repo .npmrc file is ignored due to config.npmrc with config.npmrcMerge=false',
117+
'Stripping .npmrc file of lines with variables',
99118
);
100-
npmrc = config.npmrc;
101-
} else {
102-
npmrc = config.npmrc ?? '';
103-
if (npmrc.length) {
104-
if (!npmrc.endsWith('\n')) {
105-
npmrc += '\n';
106-
}
107-
}
108-
if (repoNpmrc?.includes('package-lock')) {
109-
logger.debug('Stripping package-lock setting from .npmrc');
110-
repoNpmrc = repoNpmrc.replace(
111-
regEx(/(^|\n)package-lock.*?(\n|$)/g),
112-
'\n',
113-
);
114-
}
115-
if (repoNpmrc.includes('=${') && !GlobalConfig.get('exposeAllEnv')) {
116-
logger.debug(
117-
{ npmrcFileName },
118-
'Stripping .npmrc file of lines with variables',
119-
);
120-
repoNpmrc = repoNpmrc
121-
.split(newlineRegex)
122-
.filter((line) => !line.includes('=${'))
123-
.join('\n');
124-
}
125-
npmrc += repoNpmrc;
119+
repoNpmrc = repoNpmrc
120+
.split(newlineRegex)
121+
.filter((line) => !line.includes('=${'))
122+
.join('\n');
126123
}
124+
npmrc += repoNpmrc;
127125
}
128126
} else if (is.string(config.npmrc)) {
129127
npmrc = config.npmrc;

lib/workers/repository/onboarding/branch/index.spec.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,6 @@ describe('workers/repository/onboarding/branch/index', () => {
9191
'}\n',
9292
);
9393
scm.getFileList.mockResolvedValue(['package.json']);
94-
fs.findLocalSiblingOrParent.mockImplementation(
95-
(packageFile, configFile): Promise<string | null> => {
96-
if (packageFile === 'package.json' && configFile === '.npmrc') {
97-
return Promise.resolve('.npmrc');
98-
}
99-
return Promise.resolve(null);
100-
},
101-
);
102-
10394
fs.readLocalFile.mockResolvedValue('{}');
10495
await checkOnboardingBranch(config);
10596
const file = scm.commitAndPush.mock.calls[0][0]
@@ -125,14 +116,6 @@ describe('workers/repository/onboarding/branch/index', () => {
125116
'}\n',
126117
);
127118
scm.getFileList.mockResolvedValue(['package.json']);
128-
fs.findLocalSiblingOrParent.mockImplementation(
129-
(packageFile, configFile): Promise<string | null> => {
130-
if (packageFile === 'package.json' && configFile === '.npmrc') {
131-
return Promise.resolve('.npmrc');
132-
}
133-
return Promise.resolve(null);
134-
},
135-
);
136119
fs.readLocalFile.mockResolvedValue('{}');
137120
await checkOnboardingBranch(config);
138121
const expectConfig = {

0 commit comments

Comments
 (0)