diff --git a/CONFIGURATION.md b/CONFIGURATION.md index 3d03d7d5..6b47dbe7 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 a4fb4f6e..673a3570 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -16,6 +16,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 ece60cd5..2062a57c 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=0 diff --git a/pr_agent/settings/pr_reviewer_prompts.toml b/pr_agent/settings/pr_reviewer_prompts.toml index ae484357..97d12366 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 06b7f6bf..80782546 100644 --- a/pr_agent/tools/pr_reviewer.py +++ b/pr_agent/tools/pr_reviewer.py @@ -38,6 +38,7 @@ class PRReviewer: "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,