def setup_cli()

in bot/code_coverage_bot/cli.py [0:0]


def setup_cli(ask_repository=True, ask_revision=True):
    """
    Setup CLI options parser and taskcluster bootstrap
    """
    parser = argparse.ArgumentParser(description="Mozilla Code Coverage Bot")
    if ask_repository:
        parser.add_argument("--repository", default=os.environ.get("REPOSITORY"))
    if ask_revision:
        parser.add_argument("--revision", default=os.environ.get("REVISION"))
    parser.add_argument(
        "--cache-root", required=True, help="Cache root, used to pull changesets"
    )
    parser.add_argument(
        "--working-dir",
        required=True,
        help="Working dir to download artifacts and build reports",
    )
    parser.add_argument(
        "--task-name-filter",
        default="*",
        help="Filter Taskcluster tasks using a glob expression",
    )
    parser.add_argument(
        "--taskcluster-secret",
        help="Taskcluster Secret path",
        default=os.environ.get("TASKCLUSTER_SECRET"),
    )
    parser.add_argument(
        "--local-configuration",
        help="Path to a local YAML configuration file",
        type=open,
    )
    parser.add_argument("--taskcluster-client-id", help="Taskcluster Client ID")
    parser.add_argument("--taskcluster-access-token", help="Taskcluster Access token")
    args = parser.parse_args()

    # Auth on Taskcluster
    taskcluster_config.auth(args.taskcluster_client_id, args.taskcluster_access_token)

    # Then load secrets
    secrets.load(
        args.taskcluster_secret,
        local_secrets=yaml.safe_load(args.local_configuration)
        if args.local_configuration
        else None,
    )

    init_logger(
        "bot",
        channel=secrets.get("APP_CHANNEL", "dev"),
        PAPERTRAIL_HOST=secrets.get("PAPERTRAIL_HOST"),
        PAPERTRAIL_PORT=secrets.get("PAPERTRAIL_PORT"),
        SENTRY_DSN=secrets.get("SENTRY_DSN"),
    )

    return args