module.exports = authenticationPlugin const { Deprecation } = require('deprecation') const once = require('once') const deprecateAuthenticate = once((log, deprecation) => log.warn(deprecation)) const authenticate = require('./authenticate') const beforeRequest = require('./before-request') const requestError = require('./request-error') function authenticationPlugin (octokit, options) { if (options.auth) { octokit.authenticate = () => { deprecateAuthenticate(octokit.log, new Deprecation('[@octokit/rest] octokit.authenticate() is deprecated and has no effect when "auth" option is set on Octokit constructor')) } return } const state = { octokit, auth: false } octokit.authenticate = authenticate.bind(null, state) octokit.hook.before('request', beforeRequest.bind(null, state)) octokit.hook.error('request', requestError.bind(null, state)) }