diff --git a/CONFIGURATION.md b/CONFIGURATION.md index 3d03d7d5f..6b47dbe75 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -9,6 +9,7 @@ You can select your git_provider with the flag `git_provider` in the `config` se You can enable/disable the different PR Reviewer abilities with the following flags (`pr_reviewer` section): ``` require_focused_review=true +require_score_review=true require_tests_review=true require_security_review=true ``` diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index 9fe7a3a23..93cdf956d 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -12,6 +12,7 @@ def convert_to_markdown(output_data: dict) -> str: emojis = { "Main theme": "๐ŸŽฏ", "Type of PR": "๐Ÿ“Œ", + "Score": "๐Ÿ…", "Relevant tests added": "๐Ÿงช", "Unrelated changes": "โš ๏ธ", "Focused PR": "โœจ", diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index fc2fa2b85..485f2a538 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -6,6 +6,7 @@ verbosity_level=0 # 0,1,2 [pr_reviewer] require_focused_review=true +require_score_review=false require_tests_review=true require_security_review=true num_code_suggestions=3 diff --git a/pr_agent/settings/pr_reviewer_prompts.toml b/pr_agent/settings/pr_reviewer_prompts.toml index 51a873c41..100e62345 100644 --- a/pr_agent/settings/pr_reviewer_prompts.toml +++ b/pr_agent/settings/pr_reviewer_prompts.toml @@ -20,6 +20,12 @@ You must use the following JSON schema to format your answer: "type": "string", "enum": ["Bug fix", "Tests", "Bug fix with tests", "Refactoring", "Enhancement", "Documentation", "Other"] }, +{%- if require_score %} + "Score": { + "type": "int", + "description": "Rate this PR on a scale of 0-100 (inclusive), where 0 means the worst possible PR code, and 100 means PR code of the highest quality, without any bugs or performance issues, that is ready to be merged immediately and run in production at scale." + }, +{%- endif %} {%- if require_tests %} "Relevant tests added": { "type": "string", @@ -83,6 +89,9 @@ Example output: { "Main theme": "xxx", "Type of PR": "Bug fix", +{%- if require_score %} + "Score": 89, +{%- endif %} {%- if require_tests %} "Relevant tests added": "No", {%- endif %} diff --git a/pr_agent/tools/pr_reviewer.py b/pr_agent/tools/pr_reviewer.py index 8da08dfa7..996a2d6bc 100644 --- a/pr_agent/tools/pr_reviewer.py +++ b/pr_agent/tools/pr_reviewer.py @@ -35,6 +35,7 @@ def __init__(self, pr_url: str, cli_mode=False, is_answer: bool = False): "description": self.git_provider.get_pr_description(), "language": self.main_language, "diff": "", # empty diff for initial calculation + "require_score": settings.pr_reviewer.require_score_review, "require_tests": settings.pr_reviewer.require_tests_review, "require_security": settings.pr_reviewer.require_security_review, "require_focused": settings.pr_reviewer.require_focused_review,