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