debian-forge-composer/schutzbot/send_webhook.py
Major Hayden 538f64eb67 Send webhooks without credentials
We can now send webhook data to an SQS queue at AWS without signing the
request with credentials. This allows us to trigger Schutzbot from
forks and from branches on the main repository.

Signed-off-by: Major Hayden <major@redhat.com>
2021-02-10 18:31:56 +00:00

32 lines
704 B
Python
Executable file

#!/usr/bin/env python
# Trigger a webhook event for Schutzbot using AWS SQS.
import json
import os
import boto3
from botocore import UNSIGNED
from botocore.client import Config
WEBHOOK_PAYLOAD = os.environ.get("WEBHOOK_PAYLOAD")
EVENT_NAME = os.environ.get("EVENT_NAME")
SQS_QUEUE_URL = os.environ.get("SQS_QUEUE_URL")
SQS_REGION = os.environ.get("SQS_REGION")
sqs = boto3.client(
'sqs',
region_name=SQS_REGION,
config=Config(
signature_version=UNSIGNED
)
)
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)
)