events/code_coverage_events/cli.py (37 lines of code) (raw):
# -*- coding: utf-8 -*-
import argparse
import os
import structlog
from code_coverage_events import taskcluster_config
from code_coverage_events.workflow import Events
from code_coverage_tools.log import init_logger
logger = structlog.get_logger(__name__)
def parse_cli():
"""
Setup CLI options parser
"""
parser = argparse.ArgumentParser(description="Mozilla Code Review Bot")
parser.add_argument(
"--taskcluster-secret",
help="Taskcluster Secret path",
default=os.environ.get("TASKCLUSTER_SECRET"),
)
parser.add_argument("--taskcluster-client-id", help="Taskcluster Client ID")
parser.add_argument("--taskcluster-access-token", help="Taskcluster Access token")
return parser.parse_args()
def main():
args = parse_cli()
taskcluster_config.auth(args.taskcluster_client_id, args.taskcluster_access_token)
taskcluster_config.load_secrets(
args.taskcluster_secret,
prefixes=["common", "events"],
required=("pulse_user", "pulse_password", "hook_id", "hook_group_id"),
existing=dict(admins=["babadie@mozilla.com", "mcastelluccio@mozilla.com"]),
)
init_logger(
"events",
channel=taskcluster_config.secrets.get("APP_CHANNEL", "dev"),
PAPERTRAIL_HOST=taskcluster_config.secrets.get("PAPERTRAIL_HOST"),
PAPERTRAIL_PORT=taskcluster_config.secrets.get("PAPERTRAIL_PORT"),
SENTRY_DSN=taskcluster_config.secrets.get("SENTRY_DSN"),
)
events = Events()
events.run()
if __name__ == "__main__":
main()