diff --git a/lib/plugins/plugin/lib/utils.js b/lib/plugins/plugin/lib/utils.js index 2bed10b7fc6..0f13b457373 100644 --- a/lib/plugins/plugin/lib/utils.js +++ b/lib/plugins/plugin/lib/utils.js @@ -2,6 +2,8 @@ const fetch = require('node-fetch'); const BbPromise = require('bluebird'); +const HttpsProxyAgent = require('https-proxy-agent'); +const url = require('url'); const path = require('path'); const chalk = require('chalk'); const _ = require('lodash'); @@ -49,7 +51,20 @@ module.exports = { getPlugins() { const endpoint = 'https://raw.githubusercontent.com/serverless/plugins/master/plugins.json'; - return fetch(endpoint).then((result) => result.json()).then((json) => json); + + // Use HTTPS Proxy (Optional) + const proxy = process.env.proxy + || process.env.HTTP_PROXY + || process.env.http_proxy + || process.env.HTTPS_PROXY + || process.env.https_proxy; + + const options = {}; + if (proxy) { + options.agent = new HttpsProxyAgent(url.parse(proxy)); + } + + return fetch(endpoint, options).then((result) => result.json()).then((json) => json); }, display(plugins) {