From 5e014c6bf6c7299d1df133dbb2db7996aeaa6dfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3n=20Levy?= Date: Mon, 8 Feb 2021 23:27:55 +0000 Subject: [PATCH 1/3] style: debug error logging Github response --- src/github.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/github.js b/src/github.js index da0f723..29e6d6b 100644 --- a/src/github.js +++ b/src/github.js @@ -18,8 +18,22 @@ const getApiEndpoints = ( oauthAuthorize: `${loginBaseUrl}/login/oauth/authorize` }); +const debug_error = (err) => { + if (err.response && err.response.data) { + logger.error('Github response: %s', err.response.data, {}) + const custom_error = new Error(err.response.data || 'Unknown error'); + custom_error.status = err.response.status || 500; + custom_error.description = err.response.data ? err.response.data.statusText : null; + throw custom_error; + } + throw new Error(err); +} + +axios.interceptors.response.use(r => r, debug_error); + const check = response => { logger.debug('Checking response: %j', response, {}); + if (response.data) { if (response.data.error) { throw new Error( @@ -57,8 +71,11 @@ module.exports = (apiBaseUrl, loginBaseUrl) => { )}&state=${state}&response_type=${response_type}`, getUserDetails: accessToken => gitHubGet(urls.userDetails, accessToken).then(check), - getUserEmails: accessToken => - gitHubGet(urls.userEmails, accessToken).then(check), + getUserEmails: (accessToken) => { + logger.debug('Using access token: %s', accessToken, {}) + logger.debug('Fetching: %s', urls.userEmails, {}) + return gitHubGet(urls.userEmails, accessToken).then(check) + }, getToken: (code, state) => { const data = { // OAuth required fields From 4bf548a723f2321cb971d69b1557d076a791d6ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3n=20Levy?= Date: Tue, 9 Feb 2021 00:04:04 +0000 Subject: [PATCH 2/3] fix: log level to env, github urls to config, removed deprecated --display flag --- example-config.sh | 3 +++ package.json | 2 +- src/config.js | 2 +- src/connectors/logger.js | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/example-config.sh b/example-config.sh index 4f410a2..0f777a5 100755 --- a/example-config.sh +++ b/example-config.sh @@ -4,6 +4,9 @@ export GITHUB_CLIENT_ID=# export GITHUB_CLIENT_SECRET=# export COGNITO_REDIRECT_URI=# https:///oauth2/idpresponse +export GITHUB_API_URL="https://api.github.com" +export GITHUB_LOGIN_URL="https://github.com" +export NODE_LOG_LEVEL="debug" # Variables required if used with GitHub Enterprise # GITHUB_API_URL=# https:///api/v3 diff --git a/package.json b/package.json index 40d3c9f..778d623 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "build": "webpack", "test": "jest --runInBand --coverage", "test-dev": "jest --runInBand --watch", - "start": "webpack --watch --display errors-only", + "start": "webpack --watch", "lint": "eslint 'src/**' --ext .js", "preinstall": "./scripts/create-key.sh", "prebuild-dist": "npm run lint && npm run test", diff --git a/src/config.js b/src/config.js index db8acd6..4378696 100644 --- a/src/config.js +++ b/src/config.js @@ -5,7 +5,7 @@ module.exports = { GITHUB_API_URL: process.env.GITHUB_API_URL, GITHUB_LOGIN_URL: process.env.GITHUB_LOGIN_URL, PORT: parseInt(process.env.PORT, 10) || undefined, - + LOG_LEVEL: process.env.NODE_LOG_LEVEL, // Splunk logging variables SPLUNK_URL: process.env.SPLUNK_URL, SPLUNK_TOKEN: process.env.SPLUNK_TOKEN, diff --git a/src/connectors/logger.js b/src/connectors/logger.js index 046468a..b41992e 100644 --- a/src/connectors/logger.js +++ b/src/connectors/logger.js @@ -4,11 +4,12 @@ const { SPLUNK_TOKEN, SPLUNK_SOURCE, SPLUNK_SOURCETYPE, - SPLUNK_INDEX + SPLUNK_INDEX, + LOG_LEVEL } = require('../config'); const logger = winston.createLogger({ - level: 'info' + level: LOG_LEVEL || 'info' }); // Activate Splunk logging if Splunk's env variables are set From d764d1950195c700cce30d820a6c53cbb8de998e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3n=20Levy?= Date: Tue, 9 Feb 2021 10:43:13 +0000 Subject: [PATCH 3/3] chore: ngrok bin to .gitignore --- .gitignore | 1 + package-lock.json | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 4d8bd51..7240f96 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ config.sh *.key.pub serverless-output.yml package-lock.json +ngrok \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 42dd6c5..9373bcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8425,7 +8425,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true + "dev": true, + "optional": true }, "gunzip-maybe": { "version": "1.4.2", @@ -9328,6 +9329,7 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "optional": true, "requires": { "is-docker": "^2.0.0" } @@ -13179,6 +13181,7 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", "dev": true, + "optional": true, "requires": { "growly": "^1.3.0", "is-wsl": "^2.2.0", @@ -13193,6 +13196,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "optional": true, "requires": { "yallist": "^4.0.0" } @@ -13202,6 +13206,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, + "optional": true, "requires": { "lru-cache": "^6.0.0" } @@ -13210,13 +13215,15 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true + "dev": true, + "optional": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "optional": true, "requires": { "isexe": "^2.0.0" } @@ -13225,7 +13232,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "optional": true } } }, @@ -15154,7 +15162,8 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true + "dev": true, + "optional": true }, "signal-exit": { "version": "3.0.2",