import logging, boto3, os
from github import Github
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
# Secret Client
secretsmanager = boto3.client('secretsmanager')
# Get Secrets
token = secretsmanager.get_secret_value(SecretId=os.environ.get("GITHUB_TOKEN_SECRET")).get("SecretString")
# GitHub client
github = Github(base_url=f"https://{os.environ.get('GITHUB_API_ENDPOINT','api.github.com')}", login_or_token=token)
repo = github.get_repo(os.environ.get("REPOSITORY"))
if not "Records" in event:
raise Exception("Missing key Records in event!")
for record in event["Records"]:
if "Sns" in record:
sns_event = record["Sns"]
repo.create_issue(sns_event["Subject"], body=sns_event["Message"] + "\n\nThis was generated by " + os.environ.get("GENERATED_OWNER", "AWS"))