From 586785ffdef597657147297f96f765e126703c54 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Sun, 3 Dec 2023 10:46:02 +0200 Subject: [PATCH 1/2] feat: Add pr_url attribute to git providers and final update message in PR description --- pr_agent/git_providers/codecommit_provider.py | 1 + pr_agent/git_providers/gerrit_provider.py | 2 +- pr_agent/git_providers/github_provider.py | 1 + pr_agent/git_providers/gitlab_provider.py | 1 + pr_agent/settings/configuration.toml | 1 + pr_agent/tools/pr_description.py | 8 +++++++- 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pr_agent/git_providers/codecommit_provider.py b/pr_agent/git_providers/codecommit_provider.py index 399f0a94..64cfc70a 100644 --- a/pr_agent/git_providers/codecommit_provider.py +++ b/pr_agent/git_providers/codecommit_provider.py @@ -61,6 +61,7 @@ class CodeCommitProvider(GitProvider): 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 fd67f5f0..d286b1bf 100644 --- a/pr_agent/git_providers/gerrit_provider.py +++ b/pr_agent/git_providers/gerrit_provider.py @@ -192,7 +192,7 @@ class GerritProvider(GitProvider): ) 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 b8a13f37..b8374a81 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -31,6 +31,7 @@ class GithubProvider(GitProvider): 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 5d110359..3a593439 100644 --- a/pr_agent/git_providers/gitlab_provider.py +++ b/pr_agent/git_providers/gitlab_provider.py @@ -37,6 +37,7 @@ class GitLabProvider(GitProvider): 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 51de6693..14f4f6ae 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 0e7244d3..501de707 100644 --- a/pr_agent/tools/pr_description.py +++ b/pr_agent/tools/pr_description.py @@ -98,8 +98,14 @@ class PRDescription: 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}") From fe7d2bb9247a4ef8119a6787dffdc17c16316ff4 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Sun, 3 Dec 2023 10:52:00 +0200 Subject: [PATCH 2/2] update docs --- docs/DESCRIBE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DESCRIBE.md b/docs/DESCRIBE.md index 7011a7b5..696014d5 100644 --- a/docs/DESCRIBE.md +++ b/docs/DESCRIBE.md @@ -28,6 +28,7 @@ Under the section 'pr_description', the [configuration file](./../pr_agent/setti - `extra_instructions`: Optional extra instructions to the tool. For example: "focus on the changes in the file X. Ignore change in ...". - To enable `custom labels`, apply the configuration changes described [here](./GENERATE_CUSTOM_LABELS.md#configuration-changes) - `enable_pr_type`: if set to false, it will not show the `PR type` as a text value in the description content. Default is true. +- `final_update_message`: if set to true, it will add a comment message [`PR Description updated to latest commit...`](https://github.com/Codium-ai/pr-agent/pull/499#issuecomment-1837412176) after finishing calling `/describe`. Default is true. ### Markers template