Merge commit 'e4f177908b620e46740b03966fda9243473d979e' into hl/pr_review_table

This commit is contained in:
Hussam.lawen
2024-02-08 14:26:29 +02:00
41 changed files with 653 additions and 383 deletions

View File

@ -1,5 +1,6 @@
[config]
model="gpt-4" # "gpt-4-1106-preview"
model="gpt-4" # "gpt-4-0125-preview"
model_turbo="gpt-4-0125-preview"
fallback_models=["gpt-3.5-turbo-16k"]
git_provider="github"
publish_output=true
@ -8,11 +9,11 @@ verbosity_level=0 # 0,1,2
use_extra_bad_extensions=false
use_repo_settings_file=true
use_global_settings_file=true
ai_timeout=180
ai_timeout=90
max_description_tokens = 500
max_commits_tokens = 500
max_model_tokens = 32000 # Limits the maximum number of tokens that can be used by any model, regardless of the model's default capabilities.
patch_extra_lines = 3
patch_extra_lines = 1
secret_provider="google_cloud_storage"
cli_mode=false
@ -42,12 +43,16 @@ require_all_thresholds_for_incremental_review=false
minimal_commits_for_incremental_review=0
minimal_minutes_for_incremental_review=0
enable_help_text=true # Determines whether to include help text in the PR review. Enabled by default.
# auto approval
enable_auto_approval=false
maximal_review_effort=5
[pr_description] # /describe #
publish_labels=true
publish_description_as_comment=false
add_original_user_description=true
keep_original_user_title=false
keep_original_user_title=true
use_bullet_points=true
extra_instructions = ""
enable_pr_type=true
@ -68,17 +73,19 @@ enable_help_text=true
[pr_code_suggestions] # /improve #
max_context_tokens=8000
num_code_suggestions=4
summarize = true
extra_instructions = ""
rank_suggestions = false
enable_help_text=true
# params for '/improve --extended' mode
auto_extended_mode=false
num_code_suggestions_per_chunk=8
rank_extended_suggestions = true
max_number_of_calls = 5
final_clip_factor = 0.9
auto_extended_mode=true
num_code_suggestions_per_chunk=5
max_number_of_calls = 3
parallel_calls = true
rank_extended_suggestions = false
final_clip_factor = 0.8
[pr_add_docs] # /add_docs #
extra_instructions = ""
@ -90,6 +97,15 @@ extra_instructions = ""
[pr_analyze] # /analyze #
[pr_test] # /test #
extra_instructions = ""
testing_framework = "" # specify the testing framework you want to use
num_tests=3 # number of tests to generate. max 5.
avoid_mocks=true # if true, the generated tests will prefer to use real objects instead of mocks
file = "" # in case there are several components with the same name, you can specify the relevant file
class_name = "" # in case there are several methods with the same name in the same file, you can specify the relevant class name
enable_help_text=true
[pr_config] # /config #
[github]
@ -100,7 +116,7 @@ base_url = "https://api.github.com"
publish_inline_comments_fallback_with_verification = true
try_fix_invalid_inline_comments = true
[github_action]
[github_action_config]
# auto_review = true # set as env var in .github/workflows/pr-agent.yaml
# auto_describe = true # set as env var in .github/workflows/pr-agent.yaml
# auto_improve = true # set as env var in .github/workflows/pr-agent.yaml

View File

@ -5,7 +5,7 @@ Your task is to generate {{ docs_for_language }} for code components in the PR D
Example for the PR Diff format:
======
## src/file1.py
## file: 'src/file1.py'
@@ -12,3 +12,4 @@ def func1():
__new hunk__
@ -18,7 +18,6 @@ __old hunk__
-code line that was removed in the PR
code line2 that remained unchanged in the PR
@@ ... @@ def func2():
__new hunk__
...
@ -26,7 +25,7 @@ __old hunk__
...
## src/file2.py
## file: 'src/file2.py'
...
======

View File

@ -4,19 +4,18 @@ Your task is to provide meaningful and actionable code suggestions, to improve t
Example for the PR Diff format:
======
## src/file1.py
## file: 'src/file1.py'
@@ ... @@ def func1():
__new hunk__
12 code line1 that remained unchanged in the PR
13 +new code line2 added in the PR
13 +new hunk code line2 added in the PR
14 code line3 that remained unchanged in the PR
__old hunk__
code line1 that remained unchanged in the PR
-old code line2 that was removed in the PR
-old hunk code line2 that was removed in the PR
code line3 that remained unchanged in the PR
@@ ... @@ def func2():
__new hunk__
...
@ -24,7 +23,7 @@ __old hunk__
...
## src/file2.py
## file: 'src/file2.py'
...
======
@ -34,7 +33,7 @@ Specific instructions:
- The suggestions should refer only to code from the '__new hunk__' sections, and focus on new lines of code (lines starting with '+').
- Prioritize suggestions that address major problems, issues and bugs in the PR code. As a second priority, suggestions should focus on enhancement, best practice, performance, maintainability, and other aspects.
- Don't suggest to add docstring, type hints, or comments, or to remove unused imports.
- Avoid making suggestions that have already been implemented in the PR code. For example, if you want to add logs, or change a variable to const, or anything else, make sure it isn't already in the '__new hunk__' code.
- Suggestions should not repeat code already present in the '__new hunk__' sections.
- Provide the exact line numbers range (inclusive) for each suggestion.
- When quoting variables or names from the code, use backticks (`) instead of single quote (').
@ -51,6 +50,7 @@ The output must be a YAML object equivalent to type $PRCodeSuggestions, accordin
=====
class CodeSuggestion(BaseModel):
relevant_file: str = Field(description="the relevant file full path")
language: str = Field(description="the code language of the relevant file")
suggestion_content: str = Field(description="an actionable suggestion for meaningfully improving the new code introduced in the PR")
{%- if summarize_mode %}
existing_code: str = Field(description="a short code snippet from a '__new hunk__' section to illustrate the relevant existing code. Don't show the line numbers.")
@ -72,44 +72,41 @@ class PRCodeSuggestions(BaseModel):
Example output:
```yaml
code_suggestions:
- relevant_file: |-
- relevant_file: |
src/file1.py
suggestion_content: |-
language: |
python
suggestion_content: |
Add a docstring to func1()
{%- if summarize_mode %}
existing_code: |-
existing_code: |
def func1():
improved_code: |-
improved_code: |
...
one_sentence_summary: |-
one_sentence_summary: |
...
relevant_lines_start: 12
relevant_lines_end: 12
{%- else %}
existing_code: |-
existing_code: |
def func1():
relevant_lines_start: 12
relevant_lines_end: 12
improved_code: |-
improved_code: |
...
{%- endif %}
label: |-
label: |
...
```
Each YAML output MUST be after a newline, indented, with block scalar indicator ('|-').
Each YAML output MUST be after a newline, indented, with block scalar indicator ('|').
"""
user="""PR Info:
Title: '{{title}}'
{%- if language %}
Main PR language: '{{ language }}'
{%- endif %}
The PR Diff:
======

View File

@ -39,6 +39,7 @@ class PRType(str, Enum):
Class FileDescription(BaseModel):
filename: str = Field(description="the relevant file full path")
language: str = Field(description="the relevant file language")
changes_summary: str = Field(description="concise summary of the changes in the relevant file, in bullet points (1-4 bullet points).")
changes_title: str = Field(description="an informative title for the changes in the files, describing its main theme (5-10 words).")
label: str = Field(description="a single semantic label that represents a type of code changes that occurred in the File. Possible values (partial list): 'bug fix', 'tests', 'enhancement', 'documentation', 'error handling', 'configuration changes', 'dependencies', 'formatting', 'miscellaneous', ...")
@ -67,6 +68,8 @@ type:
pr_files:
- filename: |
...
language: |
...
changes_summary: |
...
changes_title: |
@ -104,10 +107,7 @@ Previous description:
{%- endif %}
Branch: '{{branch}}'
{%- if language %}
Main PR language: '{{ language }}'
{%- endif %}
{%- if commit_messages_str %}
Commit messages:

View File

@ -5,7 +5,7 @@ The review should focus on new code added in the PR diff (lines starting with '+
Example PR Diff:
======
## src/file1.py
## file: 'src/file1.py'
@@ -12,5 +12,5 @@ def func1():
code line 1 that remained unchanged in the PR
@ -14,12 +14,11 @@ code line 2 that remained unchanged in the PR
+code line added in the PR
code line 3 that remained unchanged in the PR
@@ ... @@ def func2():
...
## src/file2.py
## file: 'src/file2.py'
...
======
@ -96,6 +95,9 @@ PR Feedback:
relevant file:
type: string
description: the relevant file full path
language:
type: string
description: the language of the relevant file
suggestion:
type: string
description: |-
@ -141,6 +143,8 @@ PR Feedback:
Code feedback:
- relevant file: |-
directory/xxx.py
language: |-
python
suggestion: |-
xxx [important]
relevant line: |-
@ -170,10 +174,6 @@ Description:
======
{%- endif %}
{%- if language %}
Main PR language: '{{ language }}'
{%- endif %}
{%- if commit_messages_str %}
Commit messages: