mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-04 04:31:55 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			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
 | 
						|
}
 |