module.exports = Octokit const { request } = require('@octokit/request') const Hook = require('before-after-hook') const parseClientOptions = require('./parse-client-options') function Octokit (plugins, options) { options = options || {} const hook = new Hook.Collection() const log = Object.assign({ debug: () => {}, info: () => {}, warn: console.warn, error: console.error }, options && options.log) const api = { hook, log, request: request.defaults(parseClientOptions(options, log, hook)) } plugins.forEach(pluginFunction => pluginFunction(api, options)) return api }