diff --git a/pr_agent/git_providers/codecommit_provider.py b/pr_agent/git_providers/codecommit_provider.py index 399f0a944..64cfc70a0 100644 --- a/pr_agent/git_providers/codecommit_provider.py +++ b/pr_agent/git_providers/codecommit_provider.py @@ -61,6 +61,7 @@ def __init__(self, pr_url: Optional[str] = None, incremental: Optional[bool] = F self.pr = None self.diff_files = None self.git_files = None + self.pr_url = pr_url if pr_url: self.set_pr(pr_url) diff --git a/pr_agent/git_providers/gerrit_provider.py b/pr_agent/git_providers/gerrit_provider.py index fd67f5f07..d286b1bf1 100644 --- a/pr_agent/git_providers/gerrit_provider.py +++ b/pr_agent/git_providers/gerrit_provider.py @@ -192,7 +192,7 @@ def __init__(self, key: str, incremental=False): ) self.repo = Repo(self.repo_path) assert self.repo - + self.pr_url = base_url self.pr = PullRequestMimic(self.get_pr_title(), self.get_diff_files()) def get_pr_title(self): diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py index b8a13f37d..b8374a81a 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -31,6 +31,7 @@ def __init__(self, pr_url: Optional[str] = None, incremental=IncrementalPR(False self.diff_files = None self.git_files = None self.incremental = incremental + self.pr_url = pr_url if pr_url and 'pull' in pr_url: self.set_pr(pr_url) self.last_commit_id = list(self.pr.get_commits())[-1] diff --git a/pr_agent/git_providers/gitlab_provider.py b/pr_agent/git_providers/gitlab_provider.py index 5d1103596..3a5934394 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -37,6 +37,7 @@ def __init__(self, merge_request_url: Optional[str] = None, incremental: Optiona self.diff_files = None self.git_files = None self.temp_comments = [] + self.pr_url = merge_request_url self._set_merge_request(merge_request_url) self.RE_HUNK_HEADER = re.compile( r"^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@[ ]?(.*)") diff --git a/pr_agent/settings/configuration.toml b/pr_agent/settings/configuration.toml index 51de66930..14f4f6ae9 100644 --- a/pr_agent/settings/configuration.toml +++ b/pr_agent/settings/configuration.toml @@ -46,6 +46,7 @@ keep_original_user_title=false use_bullet_points=true extra_instructions = "" enable_pr_type=true +final_update_message = true # markers use_description_markers=false diff --git a/pr_agent/tools/pr_description.py b/pr_agent/tools/pr_description.py index 0e7244d38..501de7073 100644 --- a/pr_agent/tools/pr_description.py +++ b/pr_agent/tools/pr_description.py @@ -98,8 +98,14 @@ async def run(self): if get_settings().pr_description.publish_labels and self.git_provider.is_supported("get_labels"): current_labels = self.git_provider.get_labels() user_labels = get_user_labels(current_labels) - self.git_provider.publish_labels(pr_labels + user_labels) + + if (get_settings().pr_description.final_update_message and + hasattr(self.git_provider, 'pr_url') and self.git_provider.pr_url): + latest_commit_url = self.git_provider.get_latest_commit_url() + if latest_commit_url: + self.git_provider.publish_comment( + f"**[PR Description]({self.git_provider.pr_url})** updated to latest commit ({latest_commit_url})") self.git_provider.remove_initial_comment() except Exception as e: get_logger().error(f"Error generating PR description {self.pr_id}: {e}")