mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 21:30:40 +08:00
Merge pull request #499 from Codium-ai/tr/describe_message
final update message in PR description
This commit is contained in:
@ -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 ...".
|
- `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)
|
- 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.
|
- `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
|
### Markers template
|
||||||
|
|
||||||
|
@ -61,6 +61,7 @@ class CodeCommitProvider(GitProvider):
|
|||||||
self.pr = None
|
self.pr = None
|
||||||
self.diff_files = None
|
self.diff_files = None
|
||||||
self.git_files = None
|
self.git_files = None
|
||||||
|
self.pr_url = pr_url
|
||||||
if pr_url:
|
if pr_url:
|
||||||
self.set_pr(pr_url)
|
self.set_pr(pr_url)
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ class GerritProvider(GitProvider):
|
|||||||
)
|
)
|
||||||
self.repo = Repo(self.repo_path)
|
self.repo = Repo(self.repo_path)
|
||||||
assert self.repo
|
assert self.repo
|
||||||
|
self.pr_url = base_url
|
||||||
self.pr = PullRequestMimic(self.get_pr_title(), self.get_diff_files())
|
self.pr = PullRequestMimic(self.get_pr_title(), self.get_diff_files())
|
||||||
|
|
||||||
def get_pr_title(self):
|
def get_pr_title(self):
|
||||||
|
@ -31,6 +31,7 @@ class GithubProvider(GitProvider):
|
|||||||
self.diff_files = None
|
self.diff_files = None
|
||||||
self.git_files = None
|
self.git_files = None
|
||||||
self.incremental = incremental
|
self.incremental = incremental
|
||||||
|
self.pr_url = pr_url
|
||||||
if pr_url and 'pull' in pr_url:
|
if pr_url and 'pull' in pr_url:
|
||||||
self.set_pr(pr_url)
|
self.set_pr(pr_url)
|
||||||
self.last_commit_id = list(self.pr.get_commits())[-1]
|
self.last_commit_id = list(self.pr.get_commits())[-1]
|
||||||
|
@ -37,6 +37,7 @@ class GitLabProvider(GitProvider):
|
|||||||
self.diff_files = None
|
self.diff_files = None
|
||||||
self.git_files = None
|
self.git_files = None
|
||||||
self.temp_comments = []
|
self.temp_comments = []
|
||||||
|
self.pr_url = merge_request_url
|
||||||
self._set_merge_request(merge_request_url)
|
self._set_merge_request(merge_request_url)
|
||||||
self.RE_HUNK_HEADER = re.compile(
|
self.RE_HUNK_HEADER = re.compile(
|
||||||
r"^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@[ ]?(.*)")
|
r"^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@[ ]?(.*)")
|
||||||
|
@ -46,6 +46,7 @@ keep_original_user_title=false
|
|||||||
use_bullet_points=true
|
use_bullet_points=true
|
||||||
extra_instructions = ""
|
extra_instructions = ""
|
||||||
enable_pr_type=true
|
enable_pr_type=true
|
||||||
|
final_update_message = true
|
||||||
|
|
||||||
# markers
|
# markers
|
||||||
use_description_markers=false
|
use_description_markers=false
|
||||||
|
@ -98,8 +98,14 @@ class PRDescription:
|
|||||||
if get_settings().pr_description.publish_labels and self.git_provider.is_supported("get_labels"):
|
if get_settings().pr_description.publish_labels and self.git_provider.is_supported("get_labels"):
|
||||||
current_labels = self.git_provider.get_labels()
|
current_labels = self.git_provider.get_labels()
|
||||||
user_labels = get_user_labels(current_labels)
|
user_labels = get_user_labels(current_labels)
|
||||||
|
|
||||||
self.git_provider.publish_labels(pr_labels + user_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()
|
self.git_provider.remove_initial_comment()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().error(f"Error generating PR description {self.pr_id}: {e}")
|
get_logger().error(f"Error generating PR description {self.pr_id}: {e}")
|
||||||
|
Reference in New Issue
Block a user