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