mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-15 10:10:38 +08:00
refactor: improve pull request data extraction and error handling in should_process_pr_logic
This commit is contained in:
@ -45,11 +45,22 @@ def should_process_pr_logic(data) -> bool:
|
|||||||
try:
|
try:
|
||||||
pr_data = data.get("pullRequest", {})
|
pr_data = data.get("pullRequest", {})
|
||||||
title = pr_data.get("title", "")
|
title = pr_data.get("title", "")
|
||||||
source_branch = pr_data.get("fromRef", {}).get("displayId", "")
|
|
||||||
target_branch = pr_data.get("toRef", {}).get("displayId", "")
|
from_ref = pr_data.get("fromRef", {})
|
||||||
sender = pr_data.get("author", {}).get("user", {}).get("name", "")
|
source_branch = from_ref.get("displayId", "") if from_ref else ""
|
||||||
project_key = pr_data.get("toRef", {}).get("repository", {}).get("project", {}).get("key", "")
|
|
||||||
repo_slug = pr_data.get("toRef", {}).get("repository", {}).get("slug", "")
|
to_ref = pr_data.get("toRef", {})
|
||||||
|
target_branch = to_ref.get("displayId", "") if to_ref else ""
|
||||||
|
|
||||||
|
author = pr_data.get("author", {})
|
||||||
|
user = author.get("user", {}) if author else {}
|
||||||
|
sender = user.get("name", "") if user else ""
|
||||||
|
|
||||||
|
repository = to_ref.get("repository", {}) if to_ref else {}
|
||||||
|
project = repository.get("project", {}) if repository else {}
|
||||||
|
project_key = project.get("key", "") if project else ""
|
||||||
|
repo_slug = repository.get("slug", "") if repository else ""
|
||||||
|
|
||||||
repo_full_name = f"{project_key}/{repo_slug}" if project_key and repo_slug else ""
|
repo_full_name = f"{project_key}/{repo_slug}" if project_key and repo_slug else ""
|
||||||
pr_id = pr_data.get("id", None)
|
pr_id = pr_data.get("id", None)
|
||||||
|
|
||||||
@ -63,7 +74,7 @@ def should_process_pr_logic(data) -> bool:
|
|||||||
# To ignore PRs from specific users
|
# To ignore PRs from specific users
|
||||||
ignore_pr_users = get_settings().get("CONFIG.IGNORE_PR_AUTHORS", [])
|
ignore_pr_users = get_settings().get("CONFIG.IGNORE_PR_AUTHORS", [])
|
||||||
if ignore_pr_users and sender:
|
if ignore_pr_users and sender:
|
||||||
if sender in ignore_pr_users:
|
if any(re.search(regex, sender) for regex in ignore_pr_users):
|
||||||
get_logger().info(f"Ignoring PR from user '{sender}' due to 'config.ignore_pr_authors' setting")
|
get_logger().info(f"Ignoring PR from user '{sender}' due to 'config.ignore_pr_authors' setting")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -110,7 +121,7 @@ def should_process_pr_logic(data) -> bool:
|
|||||||
return False
|
return False
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().error(f"Failed allow_only_specific_folders logic: {e}")
|
get_logger().error(f"Failed allow_only_specific_folders logic: {e}")
|
||||||
pass
|
return True
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().error(f"Failed 'should_process_pr_logic': {e}")
|
get_logger().error(f"Failed 'should_process_pr_logic': {e}")
|
||||||
return False
|
return False
|
||||||
|
Reference in New Issue
Block a user