* Updates * Update * Update * Update * Update * Yarn sometimes prefers npmrc, so use same token * Description * Update readme * Feedback * Add type * new toolkit and scoped registries * npmrc in RUNNER_TEMP * Dont always auth * Try exporting blank token * Get auth working for now pending runner changes * Fix string interpolation for auth token. * Don't export both userconfigs * Update authutil.js * Add single quotes for authString * Fix the registry string. * Use userconfig and append trailing slash * Keep in root of repo * Try just adding auth token * Remove auth token * Try changes again * Add tests * Npm and GPR samples * Add types
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = authenticate
 | 
						|
 | 
						|
const { Deprecation } = require('deprecation')
 | 
						|
const once = require('once')
 | 
						|
 | 
						|
const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation))
 | 
						|
 | 
						|
function authenticate (state, options) {
 | 
						|
  deprecateAuthenticate(state.octokit.log, new Deprecation('[@octokit/rest] octokit.authenticate() is deprecated. Use "auth" constructor option instead.'))
 | 
						|
 | 
						|
  if (!options) {
 | 
						|
    state.auth = false
 | 
						|
    return
 | 
						|
  }
 | 
						|
 | 
						|
  switch (options.type) {
 | 
						|
    case 'basic':
 | 
						|
      if (!options.username || !options.password) {
 | 
						|
        throw new Error('Basic authentication requires both a username and password to be set')
 | 
						|
      }
 | 
						|
      break
 | 
						|
 | 
						|
    case 'oauth':
 | 
						|
      if (!options.token && !(options.key && options.secret)) {
 | 
						|
        throw new Error('OAuth2 authentication requires a token or key & secret to be set')
 | 
						|
      }
 | 
						|
      break
 | 
						|
 | 
						|
    case 'token':
 | 
						|
    case 'app':
 | 
						|
      if (!options.token) {
 | 
						|
        throw new Error('Token authentication requires a token to be set')
 | 
						|
      }
 | 
						|
      break
 | 
						|
 | 
						|
    default:
 | 
						|
      throw new Error("Invalid authentication type, must be 'basic', 'oauth', 'token' or 'app'")
 | 
						|
  }
 | 
						|
 | 
						|
  state.auth = options
 | 
						|
}
 |