From 638db96311e46068e4a7339a61bf48942423a078 Mon Sep 17 00:00:00 2001 From: mrT23 Date: Sat, 28 Oct 2023 13:34:32 +0300 Subject: [PATCH] github action now also uses .pr_agent.toml --- pr_agent/git_providers/github_provider.py | 5 ++++- pr_agent/git_providers/utils.py | 1 + pr_agent/servers/github_action_runner.py | 11 +++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/pr_agent/git_providers/github_provider.py b/pr_agent/git_providers/github_provider.py index 7a47fbf5..f868e482 100644 --- a/pr_agent/git_providers/github_provider.py +++ b/pr_agent/git_providers/github_provider.py @@ -258,7 +258,10 @@ class GithubProvider(GitProvider): def get_repo_settings(self): try: - contents = self.repo_obj.get_contents(".pr_agent.toml", ref=self.pr.head.sha).decoded_content + # contents = self.repo_obj.get_contents(".pr_agent.toml", ref=self.pr.head.sha).decoded_content + + # more logical to take 'pr_agent.toml' from the default branch + contents = self.repo_obj.get_contents(".pr_agent.toml").decoded_content return contents except Exception: return "" diff --git a/pr_agent/git_providers/utils.py b/pr_agent/git_providers/utils.py index c8d80dfc..50fd3915 100644 --- a/pr_agent/git_providers/utils.py +++ b/pr_agent/git_providers/utils.py @@ -26,6 +26,7 @@ def apply_repo_settings(pr_url): section_dict[key] = value get_settings().unset(section) get_settings().set(section, section_dict, merge=False) + get_logger().info(f"Applying repo settings for section {section}, contents: {contents}") finally: if repo_settings_file: diff --git a/pr_agent/servers/github_action_runner.py b/pr_agent/servers/github_action_runner.py index e1a5e56a..344cc62c 100644 --- a/pr_agent/servers/github_action_runner.py +++ b/pr_agent/servers/github_action_runner.py @@ -5,6 +5,8 @@ import os from pr_agent.agent.pr_agent import PRAgent from pr_agent.config_loader import get_settings from pr_agent.git_providers import get_git_provider +from pr_agent.git_providers.utils import apply_repo_settings +from pr_agent.log import get_logger from pr_agent.tools.pr_code_suggestions import PRCodeSuggestions from pr_agent.tools.pr_description import PRDescription from pr_agent.tools.pr_reviewer import PRReviewer @@ -57,6 +59,15 @@ async def run_action(): # Handle pull request event if GITHUB_EVENT_NAME == "pull_request": action = event_payload.get("action") + + try: + get_logger().info("Applying repo settings") + pr_url = event_payload.get("pull_request", {}).get("html_url") + if pr_url: + apply_repo_settings(pr_url) + except Exception as e: + get_logger().info(f"github action: failed to apply repo settings: {e}") + if action in ["opened", "reopened"]: pr_url = event_payload.get("pull_request", {}).get("url") if pr_url: