mirror of
				https://github.com/actions/setup-node.git
				synced 2025-10-31 16:23:34 +00:00 
			
		
		
		
	Merge 55b7d827be98b5204ff20342ea96be54a2119d37 into 89d709d423dc495668cd762a18dd4a070611be3f
This commit is contained in:
		
						commit
						ac2419d29d
					
				| @ -7,6 +7,7 @@ import * as auth from '../src/authutil'; | ||||
| import * as cacheUtils from '../src/cache-utils'; | ||||
| 
 | ||||
| let rcFile: string; | ||||
| let pkgJson: string; | ||||
| 
 | ||||
| describe('authutil tests', () => { | ||||
|   const _runnerDir = path.join(__dirname, 'runner'); | ||||
| @ -25,10 +26,12 @@ describe('authutil tests', () => { | ||||
|     process.env['GITHUB_REPOSITORY'] = 'OwnerName/repo'; | ||||
|     process.env['RUNNER_TEMP'] = tempDir; | ||||
|     rcFile = path.join(tempDir, '.npmrc'); | ||||
|     pkgJson = path.join(tempDir, 'package.json'); | ||||
|   }, 100000); | ||||
| 
 | ||||
|   beforeEach(async () => { | ||||
|     await io.rmRF(rcFile); | ||||
|     await io.rmRF(pkgJson); | ||||
|     // if (fs.existsSync(rcFile)) {
 | ||||
|     //   fs.unlinkSync(rcFile);
 | ||||
|     // }
 | ||||
| @ -113,6 +116,15 @@ describe('authutil tests', () => { | ||||
|     expect(rc['always-auth']).toBe('false'); | ||||
|   }); | ||||
| 
 | ||||
|   it('Automatically configures npm scope from package.json', async () => { | ||||
|     process.env['INPUT_SCOPE'] = ''; | ||||
|     fs.writeFileSync(pkgJson, '{"name":"@myscope/mypackage"}'); | ||||
|     await auth.configAuthentication('https://registry.npmjs.org', ''); | ||||
| 
 | ||||
|     const rc = readRcFile(rcFile); | ||||
|     expect(rc['@myscope:registry']).toBe('https://registry.npmjs.org/'); | ||||
|   }); | ||||
| 
 | ||||
|   it('Sets up npmrc for always-auth true', async () => { | ||||
|     await auth.configAuthentication('https://registry.npmjs.org/', 'true'); | ||||
|     expect(fs.statSync(rcFile)).toBeDefined(); | ||||
|  | ||||
| @ -25,6 +25,12 @@ function writeRegistryToFile( | ||||
|   if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) { | ||||
|     scope = github.context.repo.owner; | ||||
|   } | ||||
|   if (!scope) { | ||||
|     const namePrefix = packageJson('name')?.match(/^(@[^/]+)\//); | ||||
|     if (namePrefix) { | ||||
|       scope = namePrefix[1]; | ||||
|     } | ||||
|   } | ||||
|   if (scope && scope[0] != '@') { | ||||
|     scope = '@' + scope; | ||||
|   } | ||||
| @ -57,3 +63,14 @@ function writeRegistryToFile( | ||||
|     process.env.NODE_AUTH_TOKEN || 'XXXXX-XXXXX-XXXXX-XXXXX' | ||||
|   ); | ||||
| } | ||||
| 
 | ||||
| function packageJson(prop: string){ | ||||
|   const pkgPath: string = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), 'package.json'); | ||||
|   try { | ||||
|     const json = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); | ||||
| 
 | ||||
|     return prop ? json[prop] : json; | ||||
|   } catch(e) { | ||||
|     core.debug(`Unable to read from package.json`); | ||||
|   } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user