From 406940139c0eacc22c8f9b3ba18e76055bb752bf Mon Sep 17 00:00:00 2001 From: Rob van der Leek <5324924+robvanderleek@users.noreply.github.com> Date: Tue, 28 Nov 2023 00:07:22 +0100 Subject: [PATCH] Add Discord messenger --- package.json | 1 + src/discord.js | 13 +++++++++++++ src/webhooks/marketplace-purchase.js | 6 +++++- yarn.lock | 26 +++++++++++++------------- 4 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 src/discord.js diff --git a/package.json b/package.json index 9ba9ba8d..a9bb2041 100644 --- a/package.json +++ b/package.json @@ -48,6 +48,7 @@ "@types/dlv": "^1.1.4", "analytics": "^0.8.1", "js-tokens": "^8.0.1", + "node-fetch": "^2.6.1", "probot": "^12.3.3", "slice": "^1.0.0", "wildcard-match": "^5.1.2" diff --git a/src/discord.js b/src/discord.js new file mode 100644 index 00000000..a7bd0b59 --- /dev/null +++ b/src/discord.js @@ -0,0 +1,13 @@ +const nodeFetch = require('node-fetch') + +async function message (s) { + if (process.env.DISCORD_WEBHOOK_URL) { + await nodeFetch(process.env.DISCORD_WEBHOOK_URL, { + method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content: s }) + }) + } +} + +module.exports = { + message: message +} diff --git a/src/webhooks/marketplace-purchase.js b/src/webhooks/marketplace-purchase.js index 243eece5..c7da3adb 100644 --- a/src/webhooks/marketplace-purchase.js +++ b/src/webhooks/marketplace-purchase.js @@ -1,10 +1,14 @@ +const { message } = require('../discord') + async function handle (app, ctx) { const { action, marketplace_purchase: { account, plan }, previous_marketplace_purchase: previous } = ctx.payload const changeEmoji = getChangeEmoji(action, plan, previous) const change = action === 'changed' ? 'changed to' : action - app.log(`${changeEmoji} ${account.type} ${account.login} ${change} ${plan.name}`) + const msg = `${changeEmoji} ${account.type} ${account.login} ${change} ${plan.name}` + app.log(msg) + await message(msg) } function getChangeEmoji (action, plan, previous) { diff --git a/yarn.lock b/yarn.lock index 09468104..cf80380e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1663,9 +1663,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001541: - version "1.0.30001564" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz#eaa8bbc58c0cbccdcb7b41186df39dd2ba591889" - integrity sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg== + version "1.0.30001565" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz#a528b253c8a2d95d2b415e11d8b9942acc100c4f" + integrity sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w== chalk@2.4.2, chalk@^2.4.2: version "2.4.2" @@ -1991,9 +1991,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.535: - version "1.4.594" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz#f69f207fba80735a44a988df42f3f439115d0515" - integrity sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ== + version "1.4.595" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.595.tgz#fa33309eb9aabb7426915f8e166ec60f664e9ad4" + integrity sha512-+ozvXuamBhDOKvMNUQvecxfbyICmIAwS4GpLmR0bsiSBlGnLaOcs2Cj7J8XSbW+YEaN3Xl3ffgpm+srTUWFwFQ== emittery@^0.13.1: version "0.13.1" @@ -3878,15 +3878,15 @@ neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== nock@^13.3.8: - version "13.3.8" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.8.tgz#7adf3c66f678b02ef0a78d5697ae8bc2ebde0142" - integrity sha512-96yVFal0c/W1lG7mmfRe7eO+hovrhJYd2obzzOZ90f6fjpeU/XNvd9cYHZKZAQJumDfhXgoTpkpJ9pvMj+hqHw== + version "13.4.0" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.4.0.tgz#60aa3f7a4afa9c12052e74d8fb7550f682ef0115" + integrity sha512-W8NVHjO/LCTNA64yxAPHV/K47LpGYcVzgKd3Q0n6owhwvD0Dgoterc25R4rnZbckJEb6Loxz1f5QMuJpJnbSyQ== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" propagate "^2.0.0" -node-fetch@^2.6.7: +node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== @@ -5257,9 +5257,9 @@ undici-types@~5.26.4: integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== undici@^5.25.4: - version "5.28.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.0.tgz#09f6aa4a6f34de8996eec585fe4ceebaa9ef3f36" - integrity sha512-gM12DkXhlAc5+/TPe60iy9P6ETgVfqTuRJ6aQ4w8RYu0MqKuXhaq3/b86GfzDQnNA3NUO6aUNdvevrKH59D0Nw== + version "5.28.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.1.tgz#1052d37bd1a2e8cf3e188d7caebff833fdc06fa7" + integrity sha512-xcIIvj1LOQH9zAL54iWFkuDEaIVEjLrru7qRpa3GrEEHk6OBhb/LycuUY2m7VCcTuDeLziXCxobQVyKExyGeIA== dependencies: "@fastify/busboy" "^2.0.0"