diff --git a/pr_agent/agent/pr_agent.py b/pr_agent/agent/pr_agent.py index 6e76c5e0..5608c50a 100644 --- a/pr_agent/agent/pr_agent.py +++ b/pr_agent/agent/pr_agent.py @@ -46,10 +46,13 @@ class PRAgent: apply_repo_settings(pr_url) # Then, apply user specific settings if exists - request = request.replace("'", "\\'") - lexer = shlex.shlex(request, posix=True) - lexer.whitespace_split = True - action, *args = list(lexer) + if isinstance(request, str): + request = request.replace("'", "\\'") + lexer = shlex.shlex(request, posix=True) + lexer.whitespace_split = True + action, *args = list(lexer) + else: + action, *args = request args = update_settings_from_args(args) action = action.lstrip("/").lower() diff --git a/pr_agent/cli.py b/pr_agent/cli.py index 6728db9f..91d4889c 100644 --- a/pr_agent/cli.py +++ b/pr_agent/cli.py @@ -8,6 +8,8 @@ from pr_agent.log import setup_logger setup_logger() + + def run(inargs=None): parser = argparse.ArgumentParser(description='AI based pull request analyzer', usage= """\ @@ -51,9 +53,9 @@ For example: 'python cli.py --pr_url=... review --pr_reviewer.extra_instructions command = args.command.lower() get_settings().set("CONFIG.CLI_MODE", True) if args.issue_url: - result = asyncio.run(PRAgent().handle_request(args.issue_url, command + " " + " ".join(args.rest))) + result = asyncio.run(PRAgent().handle_request(args.issue_url, [command] + args.rest)) else: - result = asyncio.run(PRAgent().handle_request(args.pr_url, command + " " + " ".join(args.rest))) + result = asyncio.run(PRAgent().handle_request(args.pr_url, [command] + args.rest)) if not result: parser.print_help()