From 51aa1c771c3add1bc071f78839bb26b9568a6bdf Mon Sep 17 00:00:00 2001 From: Major Hayden Date: Tue, 9 Feb 2021 16:26:29 -0600 Subject: [PATCH] =?UTF-8?q?=E2=9A=A1=20Trigger=20schutzbot=20using=20githu?= =?UTF-8?q?b=20actions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Major Hayden --- .github/workflows/tests.yml | 13 +++++++++++++ schutzbot/send_webhook.py | 24 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100755 schutzbot/send_webhook.py diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 64631393f..db53bb6a7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -53,6 +53,19 @@ jobs: - name: Send coverage to codecov.io run: bash <(curl -s https://codecov.io/bash) + - name: Trigger Schutzbot + env: + EVENT_NAME: ${{ github.event_name }} + WEBHOOK_PAYLOAD: ${{ toJSON(github.event) }} + SQS_REGION: us-east-1 + SQS_QUEUE_URL: "https://sqs.us-east-1.amazonaws.com/933752197999/schutzbot_webhook_sqs-staging" + AWS_ACCESS_KEY_ID: ${{ secrets.WEBHOOK_AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.WEBHOOK_AWS_SECRET_ACCESS_KEY }} + run: | + #!/bin/bash + pip3 install boto3 + schutzbot/send_webhook.py + shellcheck: name: "🐚 Shellcheck" runs-on: ubuntu-20.04 diff --git a/schutzbot/send_webhook.py b/schutzbot/send_webhook.py new file mode 100755 index 000000000..abb76ff67 --- /dev/null +++ b/schutzbot/send_webhook.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python +# Trigger a webhook event for Schutzbot using AWS SQS. +import json +import os + +import boto3 + +WEBHOOK_PAYLOAD = os.environ.get("WEBHOOK_PAYLOAD") +EVENT_NAME = os.environ.get("EVENT_NAME") +SQS_REGION = os.environ.get("SQS_REGION") +SQS_QUEUE_URL = os.environ.get("SQS_QUEUE_URL") + +sqs = boto3.client('sqs', region_name=SQS_REGION) + +payload = json.loads(WEBHOOK_PAYLOAD) +message = { + 'headers': {'X-Github-Event': EVENT_NAME}, + 'payload': payload +} + +response = sqs.send_message( + QueueUrl=SQS_QUEUE_URL, + MessageBody=json.dumps(message) +)