1
0
Fork 0
mirror of https://github.com/actions/setup-node synced 2024-12-25 14:42:41 +00:00
setup-node/node_modules/@octokit/rest/plugins/authentication-deprecated/authenticate.js
2019-08-05 15:18:52 -04:00

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