From 081d6097b6dbe662b005bf1c42331c6dc8ff0662 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Walther?= Date: Wed, 15 Feb 2023 10:02:19 +0100 Subject: [PATCH] Github Actions: Remove keybase notifications --- .github/workflows/audit.yml | 8 +-- .github/workflows/build-ts-packages.yml | 8 +-- .github/workflows/network-explorer.yml | 8 +-- .github/workflows/nightly_build.yml | 8 +-- .github/workflows/nightly_build_release.yml | 8 +-- .github/workflows/nightly_build_release2.yml | 8 +-- .github/workflows/nym-connect.yml | 8 +-- .github/workflows/nym-wallet-storybook.yml | 8 +-- .github/workflows/support-files/.env.example | 6 +- .github/workflows/support-files/README.md | 19 ++++--- .../notifications/send_message.js | 57 ------------------- .github/workflows/support-files/package.json | 5 +- .github/workflows/typescript-lint.yml | 8 +-- 13 files changed, 31 insertions(+), 128 deletions(-) diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index b8c64425cb..212f1a0501 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -39,18 +39,14 @@ jobs: uses: actions/setup-node@v3 with: node-version: 16 - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: security NYM_PROJECT_NAME: "Daily security report" GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "security" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" MATRIX_USER_ID: "${{ secrets.MATRIX_USER_ID }}" diff --git a/.github/workflows/build-ts-packages.yml b/.github/workflows/build-ts-packages.yml index 82a9d0b9b5..ba744b1a65 100644 --- a/.github/workflows/build-ts-packages.yml +++ b/.github/workflows/build-ts-packages.yml @@ -43,10 +43,10 @@ jobs: REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/ts-${{ env.GITHUB_REF_SLUG }}-example EXCLUDE: "/dist/, /node_modules/" - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: ts-packages NYM_PROJECT_NAME: "ts-packages" @@ -54,10 +54,6 @@ jobs: NYM_CI_WWW_LOCATION: "ts-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-ts-packages" IS_SUCCESS: "${{ job.status == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/network-explorer.yml b/.github/workflows/network-explorer.yml index 4ae55435de..9f50548105 100644 --- a/.github/workflows/network-explorer.yml +++ b/.github/workflows/network-explorer.yml @@ -57,10 +57,10 @@ jobs: REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/ne-sb-${{ env.GITHUB_REF_SLUG }} EXCLUDE: "/dist/, /node_modules/" - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: network-explorer NYM_PROJECT_NAME: "Network Explorer" @@ -69,10 +69,6 @@ jobs: NYM_CI_WWW_LOCATION_STORYBOOK: "ne-sb-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-network-explorer" IS_SUCCESS: "${{ job.status == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/nightly_build.yml b/.github/workflows/nightly_build.yml index 70ac8c105f..af49b2c04c 100644 --- a/.github/workflows/nightly_build.yml +++ b/.github/workflows/nightly_build.yml @@ -153,11 +153,11 @@ jobs: if: env.WORKFLOW_CONCLUSION == 'failure' with: node-version: 16 - - name: Keybase - Node Install + - name: Matrix - Node Install if: env.WORKFLOW_CONCLUSION == 'failure' run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification if: env.WORKFLOW_CONCLUSION == 'failure' env: NYM_NOTIFICATION_KIND: nightly @@ -165,10 +165,6 @@ jobs: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nightly" IS_SUCCESS: "${{ env.WORKFLOW_CONCLUSION == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/nightly_build_release.yml b/.github/workflows/nightly_build_release.yml index 6db1effc5a..0eece7c5f5 100644 --- a/.github/workflows/nightly_build_release.yml +++ b/.github/workflows/nightly_build_release.yml @@ -168,11 +168,11 @@ jobs: if: env.WORKFLOW_CONCLUSION == 'failure' with: node-version: 16 - - name: Keybase - Node Install + - name: Matrix - Node Install if: env.WORKFLOW_CONCLUSION == 'failure' run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification if: env.WORKFLOW_CONCLUSION == 'failure' env: NYM_NOTIFICATION_KIND: nightly @@ -180,10 +180,6 @@ jobs: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH_NAME: "${{needs.get_release.outputs.output1}}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nightly-release" IS_SUCCESS: "${{ env.WORKFLOW_CONCLUSION == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/nightly_build_release2.yml b/.github/workflows/nightly_build_release2.yml index 05987d55a6..402729cac1 100644 --- a/.github/workflows/nightly_build_release2.yml +++ b/.github/workflows/nightly_build_release2.yml @@ -168,11 +168,11 @@ jobs: if: env.WORKFLOW_CONCLUSION == 'failure' with: node-version: 16 - - name: Keybase - Node Install + - name: Matrix - Node Install if: env.WORKFLOW_CONCLUSION == 'failure' run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification if: env.WORKFLOW_CONCLUSION == 'failure' env: NYM_NOTIFICATION_KIND: nightly @@ -180,10 +180,6 @@ jobs: GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH_NAME: "${{needs.get_release.outputs.output1}}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nightly-release" IS_SUCCESS: "${{ env.WORKFLOW_CONCLUSION == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/nym-connect.yml b/.github/workflows/nym-connect.yml index e941259252..69f5acb147 100644 --- a/.github/workflows/nym-connect.yml +++ b/.github/workflows/nym-connect.yml @@ -39,10 +39,10 @@ jobs: REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/nym-connect-${{ env.GITHUB_REF_SLUG }} EXCLUDE: "/dist/, /node_modules/" - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: nym-connect NYM_PROJECT_NAME: "nym-connect" @@ -50,10 +50,6 @@ jobs: NYM_CI_WWW_LOCATION: "nym-connect-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nym-connect" IS_SUCCESS: "${{ job.status == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/nym-wallet-storybook.yml b/.github/workflows/nym-wallet-storybook.yml index 7c17893beb..b4b290cca2 100644 --- a/.github/workflows/nym-wallet-storybook.yml +++ b/.github/workflows/nym-wallet-storybook.yml @@ -35,10 +35,10 @@ jobs: REMOTE_USER: ${{ secrets.CI_WWW_REMOTE_USER }} TARGET: ${{ secrets.CI_WWW_REMOTE_TARGET }}/wallet-${{ env.GITHUB_REF_SLUG }} EXCLUDE: "/dist/, /node_modules/" - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: nym-wallet NYM_PROJECT_NAME: "nym-wallet" @@ -46,10 +46,6 @@ jobs: NYM_CI_WWW_LOCATION: "wallet-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-nym-wallet" IS_SUCCESS: "${{ job.status == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" diff --git a/.github/workflows/support-files/.env.example b/.github/workflows/support-files/.env.example index df05f1801c..bbd09935d7 100644 --- a/.github/workflows/support-files/.env.example +++ b/.github/workflows/support-files/.env.example @@ -1,7 +1,3 @@ -KEYBASE_NYM_CHANNEL= -KEYBASE_NYMBOT_USERNAME= -KEYBASE_NYMBOT_PAPERKEY= - MATRIX_SERVER= MATRIX_ROOM= MATRIX_ROOM_OF_SHAME= @@ -39,4 +35,4 @@ NYM_CI_WWW_BASE=example.com # Nightly builds WORKFLOW_CONCLUSION=success -SHOW_DEBUG=true \ No newline at end of file +SHOW_DEBUG=true diff --git a/.github/workflows/support-files/README.md b/.github/workflows/support-files/README.md index 5e46357967..9cac90aecc 100644 --- a/.github/workflows/support-files/README.md +++ b/.github/workflows/support-files/README.md @@ -4,7 +4,7 @@ This is a collection of scripts and files to support GitHub Actions. ## Sending Notifications -These scripts send CI notifications to Keybase by creating messages from templates and env vars passed from GitHub Actions. +These scripts send CI notifications to Matrix by creating messages from templates and env vars passed from GitHub Actions. ### Adding notifications to a GitHub Action @@ -19,10 +19,11 @@ jobs: env: NYM_NOTIFICATION_KIND: "my-component" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-network-explorer" + MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" + MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}" + MATRIX_USER_ID: "${{ secrets.MATRIX_USER_ID }}" + MATRIX_TOKEN: "${{ secrets.MATRIX_TOKEN }}" + MATRIX_DEVICE_ID: "${{ secrets.MATRIX_DEVICE_ID }}" IS_SUCCESS: "${{ job.status == 'success' }}" uses: docker://keybaseio/client:stable-node with: @@ -34,8 +35,8 @@ Notifications are run by adding the snippet above to a GitHub Action, and: 1. Installing node packages needed at run time 2. Set the env vars as required: - `NYM_NOTIFICATION_KIND` matches the directory in `.github/workflows/support-files/${NYM_NOTIFICATION_KIND}` to provide the templates and extra scripting in `index.js` - - Keybase credentials, channel and other env vars for the status of the build and repo -3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh` + - Matrix credentials, room and other env vars for the status of the build and repo +3. Replacing the default entry point shell script on the `keybaseio/client:stable-node` docker image to run `.github/workflows/support-files/notifications/entry_point.sh` ### Running locally @@ -43,7 +44,7 @@ You will need: - Node 16 LTS - npm -Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Keybase credentials. +Copy `.github/workflows/support-files/.env.example` to `.github/workflows/support-files/.env` and valid Matrix credentials. Then run `npm install` to get dependencies. @@ -55,4 +56,4 @@ npm install cp .env.example .env vi .env npm run dev -``` \ No newline at end of file +``` diff --git a/.github/workflows/support-files/notifications/send_message.js b/.github/workflows/support-files/notifications/send_message.js index c83a43d88a..2d0c18d6a9 100644 --- a/.github/workflows/support-files/notifications/send_message.js +++ b/.github/workflows/support-files/notifications/send_message.js @@ -1,6 +1,5 @@ require('dotenv').config(); -const Bot = require('keybase-bot'); const { sendMatrixMessage } = require('./send_message_to_matrix'); let context = { @@ -24,21 +23,6 @@ function validateContext() { 'Please set env var NYM_PROJECT_NAME with the project name for displaying in notification messages', ); } - if (!context.env.KEYBASE_NYM_CHANNEL) { - throw new Error( - 'Please set env var KEYBASE_NYM_CHANNEL with the channel name for the notification message', - ); - } - if (!context.env.KEYBASE_NYMBOT_USERNAME) { - throw new Error( - 'Username is not defined. Please set env var KEYBASE_NYMBOT_USERNAME', - ); - } - if (!context.env.KEYBASE_NYMBOT_PAPERKEY) { - throw new Error( - 'Paperkey is not defined. Please set env var KEYBASE_NYMBOT_PAPERKEY', - ); - } if (context.env.MATRIX_ROOM) { if (!context.env.MATRIX_SERVER) { throw new Error( @@ -84,12 +68,6 @@ function createTemplateContext() { context.kind = context.env.NYM_NOTIFICATION_KIND; - context.keybase = { - channel: context.env.KEYBASE_NYM_CHANNEL, - username: context.env.KEYBASE_NYMBOT_USERNAME, - paperkey: context.env.KEYBASE_NYMBOT_PAPERKEY, - }; - if (!context.env.GIT_BRANCH_NAME) { context.env.GIT_BRANCH_NAME = context.env.GITHUB_REF.split('/') .slice(2) @@ -99,40 +77,6 @@ function createTemplateContext() { context.status = process.env.IS_SUCCESS === 'true' ? 'success' : 'failure'; } -async function sendKeybaseMessage(messageBody) { - const bot = new Bot(); - try { - console.log( - `Initialising keybase with user "${ - context.keybase.username - }" and key: "${'*'.repeat(context.keybase.paperkey.length)}"...`, - ); - await bot.init(context.keybase.username, context.keybase.paperkey, { - verbose: false, - }); - - const channel = { - name: context.env.KEYBASE_NYMBOT_TEAM || 'nymtech_bot', - membersType: 'team', - topicName: context.keybase.channel, - topic_type: 'CHAT', - }; - const message = { - body: messageBody, - }; - - console.log(`Sending to ${channel.name}#${channel.topicName}...`); - await bot.chat.send(channel, message); - - console.log('Message sent!'); - } catch (error) { - console.error(error); - process.exitCode = -1; - } finally { - await bot.deinit(); - } -} - /** * Uses the `kind` set in the context to process the context and generate a notification message * @returns {Promise} A string notification message body @@ -169,7 +113,6 @@ async function main() { console.log(messageBody); console.log('-----------------------------------------'); } - await sendKeybaseMessage(messageBody); if(context.env.MATRIX_ROOM) { await sendMatrixMessage(context, messageBody, context.env.MATRIX_ROOM) } diff --git a/.github/workflows/support-files/package.json b/.github/workflows/support-files/package.json index 8f20c34091..801d8e9bdd 100644 --- a/.github/workflows/support-files/package.json +++ b/.github/workflows/support-files/package.json @@ -1,6 +1,6 @@ { - "name": "send-keybase-message", - "description": "Sends a notification message with the keybase package that fails when piped into the keybase CLI", + "name": "send-matrix-message", + "description": "Sends a notification message with the matrix sdk", "version": "1.0.0", "private": true, "scripts": { @@ -10,7 +10,6 @@ "dependencies": { "dotenv": "^16.0.0", "handlebars": "^4.7.7", - "keybase-bot": "^3.6.1", "matrix-js-sdk": "^9.3.0", "node-localstorage": "^2.1.6", "octokit": "^1.7.1", diff --git a/.github/workflows/typescript-lint.yml b/.github/workflows/typescript-lint.yml index 8a378635d7..c4e1f63b62 100644 --- a/.github/workflows/typescript-lint.yml +++ b/.github/workflows/typescript-lint.yml @@ -25,10 +25,10 @@ jobs: run: npm install -g yarn - name: Lint run: yarn && yarn lint && yarn tsc - - name: Keybase - Node Install + - name: Matrix - Node Install run: npm install working-directory: .github/workflows/support-files - - name: Keybase - Send Notification + - name: Matrix - Send Notification env: NYM_NOTIFICATION_KIND: ts-packages NYM_PROJECT_NAME: "ts-packages" @@ -36,10 +36,6 @@ jobs: NYM_CI_WWW_LOCATION: "ts-${{ env.GITHUB_REF_SLUG }}" GIT_COMMIT_MESSAGE: "${{ github.event.head_commit.message }}" GIT_BRANCH: "${GITHUB_REF##*/}" - KEYBASE_NYMBOT_USERNAME: "${{ secrets.KEYBASE_NYMBOT_USERNAME }}" - KEYBASE_NYMBOT_PAPERKEY: "${{ secrets.KEYBASE_NYMBOT_PAPERKEY }}" - KEYBASE_NYMBOT_TEAM: "${{ secrets.KEYBASE_NYMBOT_TEAM }}" - KEYBASE_NYM_CHANNEL: "ci-ts-packages" IS_SUCCESS: "${{ job.status == 'success' }}" MATRIX_SERVER: "${{ secrets.MATRIX_SERVER }}" MATRIX_ROOM: "${{ secrets.MATRIX_ROOM }}"