diff --git a/bugbug/phabricator.py b/bugbug/phabricator.py index 98761cdba4..de1b26384d 100644 --- a/bugbug/phabricator.py +++ b/bugbug/phabricator.py @@ -7,6 +7,7 @@ from datetime import datetime, timedelta from typing import Collection, Iterator, NewType +import requests import tenacity from libmozdata.phabricator import PhabricatorAPI from tqdm import tqdm @@ -291,3 +292,17 @@ def get_pending_review_time(rev: RevisionDict) -> timedelta | None: return datetime.utcnow() - last_exclusion_end_date else: return datetime.utcnow() - creation_date + + +def fetch_diff(revision_id, patch_id): + try: + url = f"https://phabricator.services.mozilla.com/D{revision_id}?id={patch_id}&download=true" + response = requests.get(url) + response.raise_for_status() + return response.text + except requests.HTTPError as e: + logger.error(f"HTTP error fetching diff: {e}") + return None + except Exception as e: + logger.error(f"Unexpected error: {e}") + return None diff --git a/bugbug/tools/code_review_generation.py b/bugbug/tools/code_review_generation.py index 30bf8e9e4a..22f1a3770b 100644 --- a/bugbug/tools/code_review_generation.py +++ b/bugbug/tools/code_review_generation.py @@ -3,12 +3,12 @@ import logging import re -import requests from langchain_openai import OpenAIEmbeddings from libmozdata.phabricator import PhabricatorAPI from qdrant_client import QdrantClient from bugbug.generative_model_tool import GenerativeModelTool +from bugbug.phabricator import fetch_diff from bugbug.tools.code_review import PhabricatorReviewData from bugbug.utils import get_secret from bugbug.vectordb import QdrantVectorDB, VectorPoint @@ -253,20 +253,6 @@ def get_revision_id_from_patch(patch_id): return None -def fetch_diff(revision_id, patch_id): - try: - url = f"https://phabricator.services.mozilla.com/D{revision_id}?id={patch_id}&download=true" - response = requests.get(url) - response.raise_for_status() - return response.text - except requests.HTTPError as e: - logger.error(f"HTTP error fetching diff: {e}") - return None - except Exception as e: - logger.error(f"Unexpected error: {e}") - return None - - def generate_prompt( comment_content, relevant_diff,