Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 13 additions & 17 deletions bugbug/tools/core/platforms/phabricator.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,24 +34,32 @@
REDACTED_TEST_PLAN = "[Unvalidated test plan redacted for security]"


@cache
def _base_url() -> str:
base_url = os.getenv("PHABRICATOR_URL", "https://phabricator.services.mozilla.com")
assert not base_url.endswith("/"), "PHABRICATOR_URL should not end with a slash"
return base_url


@cache
def get_phabricator_client(
api_key: Optional[str] = None,
url: Optional[str] = None,
base_url: Optional[str] = None,
user_agent: Optional[str] = None,
):
"""Get a cached Phabricator client instance."""
from libmozdata.config import set_default_value
from libmozdata.phabricator import PhabricatorAPI

base_url = base_url or _base_url()
api_url = base_url + "/api/"
api_key = api_key or os.getenv("PHABRICATOR_API_KEY")
url = url or os.getenv("PHABRICATOR_API_URL")
user_agent = user_agent or get_user_agent()

# This is a workaround since PhabricatorAPI does not accept user agent directly
set_default_value("User-Agent", "name", user_agent)

return PhabricatorAPI(api_key, url)
return PhabricatorAPI(api_key, api_url)


def _get_users_info_batch_impl(user_phids: set[str]) -> dict[str, dict]:
Expand Down Expand Up @@ -260,21 +268,9 @@ def __init__(
self._revision_phid = revision_phid
self._revision_id = revision_id

@classmethod
@cache
def _base_url(cls) -> str:
api_url = os.environ.get(
"PHABRICATOR_API_URL", "https://phabricator.services.mozilla.com/api/"
)

if not api_url.endswith("/api/"):
raise ValueError("PHABRICATOR_API_URL must end with /api/")

return api_url.rstrip("/api/")

@property
def patch_url(self) -> str:
return f"{self._base_url()}/D{self.revision_id}"
return f"{_base_url()}/D{self.revision_id}"

@property
def diff_id(self) -> int:
Expand Down Expand Up @@ -315,7 +311,7 @@ async def _get_file_from_patch(self, file_path: str, is_before_patch: bool) -> s
view = "old" if is_before_patch else "new"
client = get_http_client()
r = await client.get(
f"{self._base_url()}/differential/changeset/?view={view}&ref={changeset_id}",
f"{_base_url()}/differential/changeset/?view={view}&ref={changeset_id}",
)
r.raise_for_status()

Expand Down
5 changes: 2 additions & 3 deletions bugbug/vectordb.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

import os
from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import Iterable, Optional
Expand All @@ -12,8 +13,6 @@
from qdrant_client.http.exceptions import UnexpectedResponse
from qdrant_client.models import Distance, PointStruct, VectorParams

from bugbug.utils import get_secret


@dataclass
class VectorPoint:
Expand Down Expand Up @@ -102,7 +101,7 @@ def __init__(self, collection_name: str, *args, **kwargs):
super().__init__(*args, **kwargs)
self.collection_name = collection_name
self.client = QdrantClient(
location=get_secret("QDRANT_LOCATION"), api_key=get_secret("QDRANT_API_KEY")
location=os.getenv("QDRANT_LOCATION"), api_key=os.getenv("QDRANT_API_KEY")
)

def setup(self):
Expand Down