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
 | |
| }
 |