mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-04 21:00:40 +08:00
github action now also uses .pr_agent.toml
This commit is contained in:
@ -258,7 +258,10 @@ class GithubProvider(GitProvider):
|
|||||||
|
|
||||||
def get_repo_settings(self):
|
def get_repo_settings(self):
|
||||||
try:
|
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
|
return contents
|
||||||
except Exception:
|
except Exception:
|
||||||
return ""
|
return ""
|
||||||
|
@ -26,6 +26,7 @@ def apply_repo_settings(pr_url):
|
|||||||
section_dict[key] = value
|
section_dict[key] = value
|
||||||
get_settings().unset(section)
|
get_settings().unset(section)
|
||||||
get_settings().set(section, section_dict, merge=False)
|
get_settings().set(section, section_dict, merge=False)
|
||||||
|
get_logger().info(f"Applying repo settings for section {section}, contents: {contents}")
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
if repo_settings_file:
|
if repo_settings_file:
|
||||||
|
@ -5,6 +5,8 @@ import os
|
|||||||
from pr_agent.agent.pr_agent import PRAgent
|
from pr_agent.agent.pr_agent import PRAgent
|
||||||
from pr_agent.config_loader import get_settings
|
from pr_agent.config_loader import get_settings
|
||||||
from pr_agent.git_providers import get_git_provider
|
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_code_suggestions import PRCodeSuggestions
|
||||||
from pr_agent.tools.pr_description import PRDescription
|
from pr_agent.tools.pr_description import PRDescription
|
||||||
from pr_agent.tools.pr_reviewer import PRReviewer
|
from pr_agent.tools.pr_reviewer import PRReviewer
|
||||||
@ -57,6 +59,15 @@ async def run_action():
|
|||||||
# Handle pull request event
|
# Handle pull request event
|
||||||
if GITHUB_EVENT_NAME == "pull_request":
|
if GITHUB_EVENT_NAME == "pull_request":
|
||||||
action = event_payload.get("action")
|
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"]:
|
if action in ["opened", "reopened"]:
|
||||||
pr_url = event_payload.get("pull_request", {}).get("url")
|
pr_url = event_payload.get("pull_request", {}).get("url")
|
||||||
if pr_url:
|
if pr_url:
|
||||||
|
Reference in New Issue
Block a user