diff --git a/docs/IMPROVE.md b/docs/IMPROVE.md
index f60cec53..1501ea1d 100644
--- a/docs/IMPROVE.md
+++ b/docs/IMPROVE.md
@@ -33,6 +33,14 @@ Under the section 'pr_code_suggestions', the [configuration file](./../pr_agent/
- `max_number_of_calls`: maximum number of chunks. Default is 5.
- `final_clip_factor`: factor to remove suggestions with low confidence. Default is 0.9.
+#### summarize mode
+- `summarize`: if set to true, the tool will summarize the PR code changes. Default is false.
+In this mode, instead of presenting commitable suggestions, the different suggestions will be combined into a single compact instruction, with a significant smaller PR footprint.
+For example:
+`/improve --pr_code_suggestions.summarize=true`
+
+
+
#### A note on code suggestions quality
diff --git a/pics/improved_summerize_closed.png b/pics/improved_summerize_closed.png
new file mode 100644
index 00000000..f33d87d3
Binary files /dev/null and b/pics/improved_summerize_closed.png differ
diff --git a/pics/improved_summerize_open.png b/pics/improved_summerize_open.png
new file mode 100644
index 00000000..a2bd35c2
Binary files /dev/null and b/pics/improved_summerize_open.png differ
diff --git a/pr_agent/git_providers/bitbucket_provider.py b/pr_agent/git_providers/bitbucket_provider.py
index e2431645..d13a708c 100644
--- a/pr_agent/git_providers/bitbucket_provider.py
+++ b/pr_agent/git_providers/bitbucket_provider.py
@@ -228,6 +228,10 @@ class BitbucketProvider(GitProvider):
)
return response
+ def get_line_link(self, relevant_file: str, relevant_line_start: int, relevant_line_end: int = None) -> str:
+ link = f"{self.pr_url}/#L{relevant_file}T{relevant_line_start}"
+ return link
+
def generate_link_to_relevant_line_number(self, suggestion) -> str:
try:
relevant_file = suggestion['relevant file'].strip('`').strip("'")
diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py
index ea2476bc..1fb85164 100644
--- a/pr_agent/git_providers/github_provider.py
+++ b/pr_agent/git_providers/github_provider.py
@@ -501,7 +501,6 @@ class GithubProvider(GitProvider):
return ""
-
def get_line_link(self, relevant_file: str, relevant_line_start: int, relevant_line_end: int = None) -> str:
sha_file = hashlib.sha256(relevant_file.encode('utf-8')).hexdigest()
if relevant_line_end:
diff --git a/pr_agent/tools/pr_code_suggestions.py b/pr_agent/tools/pr_code_suggestions.py
index 7027fa2b..a65659d3 100644
--- a/pr_agent/tools/pr_code_suggestions.py
+++ b/pr_agent/tools/pr_code_suggestions.py
@@ -255,9 +255,9 @@ class PRCodeSuggestions:
s['relevant lines end'])
data_markdown += f"\n💡 Suggestion:\n\n**{s['suggestion content']}**\n\n"
if code_snippet_link:
- data_markdown += f" File: [{s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})]({code_snippet_link})\n"
+ data_markdown += f" File: [{s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})]({code_snippet_link})\n\n"
else:
- data_markdown += f"File: {s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})\n"
+ data_markdown += f"File: {s['relevant file']} ({s['relevant lines start']}-{s['relevant lines end']})\n\n"
if self.git_provider.is_supported("gfm_markdown"):
data_markdown += " Example code:
\n\n"
data_markdown += f"___\n\n"