From a7d3d97b9c6237ee0034674a07cfb4e710885b4f Mon Sep 17 00:00:00 2001 From: mohammed Date: Wed, 4 Jun 2025 14:28:28 +0300 Subject: [PATCH 1/3] log errors (json, strings) from cf-api for better debugging --- codeflash/api/cfapi.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/codeflash/api/cfapi.py b/codeflash/api/cfapi.py index fefcb0822..ad0451d23 100644 --- a/codeflash/api/cfapi.py +++ b/codeflash/api/cfapi.py @@ -44,13 +44,29 @@ def make_cfapi_request( cfapi_headers = {"Authorization": f"Bearer {get_codeflash_api_key()}"} if extra_headers: cfapi_headers.update(extra_headers) - if method.upper() == "POST": - json_payload = json.dumps(payload, indent=None, default=pydantic_encoder) - cfapi_headers["Content-Type"] = "application/json" - response = requests.post(url, data=json_payload, headers=cfapi_headers, timeout=60) - else: - response = requests.get(url, headers=cfapi_headers, timeout=60) - return response + try: + if method.upper() == "POST": + json_payload = json.dumps(payload, indent=None, default=pydantic_encoder) + cfapi_headers["Content-Type"] = "application/json" + response = requests.post(url, data=json_payload, headers=cfapi_headers, timeout=60) + else: + response = requests.get(url, headers=cfapi_headers, timeout=60) + response.raise_for_status() + return response # noqa: TRY300 + except requests.exceptions.HTTPError: + # response may be either a string or JSON, so we handle both cases + error_message = "" + try: + json_response = response.json() + if "error" in json_response: + error_message = json_response["error"] + elif "message" in json_response: + error_message = json_response["message"] + except (ValueError, TypeError): + error_message = response.text + + logger.error(f"Error making request to Codeflash API: {error_message}") + return response @lru_cache(maxsize=1) @@ -164,10 +180,7 @@ def is_github_app_installed_on_repo(owner: str, repo: str) -> bool: :return: The response object. """ response = make_cfapi_request(endpoint=f"/is-github-app-installed?repo={repo}&owner={owner}", method="GET") - if not response.ok or response.text != "true": - logger.error(f"Error: {response.text}") - return False - return True + return response.ok and response.text == "true" def get_blocklisted_functions() -> dict[str, set[str]] | dict[str, Any]: From a263a5eaa82f0408327b0fff6f2ae64afbeba179 Mon Sep 17 00:00:00 2001 From: mohammed Date: Wed, 4 Jun 2025 14:52:09 +0300 Subject: [PATCH 2/3] log status code on failed cf-api calls --- codeflash/api/cfapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codeflash/api/cfapi.py b/codeflash/api/cfapi.py index ad0451d23..9501dad7e 100644 --- a/codeflash/api/cfapi.py +++ b/codeflash/api/cfapi.py @@ -65,7 +65,7 @@ def make_cfapi_request( except (ValueError, TypeError): error_message = response.text - logger.error(f"Error making request to Codeflash API: {error_message}") + logger.error(f"Error making request to Codeflash API (status {response.status_code}): {error_message}") return response From 57d700b691093e4ef14670e702673ca006679943 Mon Sep 17 00:00:00 2001 From: mohammed Date: Thu, 5 Jun 2025 21:16:14 +0300 Subject: [PATCH 3/3] more detailed log error message --- codeflash/api/cfapi.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/codeflash/api/cfapi.py b/codeflash/api/cfapi.py index 9501dad7e..bf4abd618 100644 --- a/codeflash/api/cfapi.py +++ b/codeflash/api/cfapi.py @@ -65,7 +65,9 @@ def make_cfapi_request( except (ValueError, TypeError): error_message = response.text - logger.error(f"Error making request to Codeflash API (status {response.status_code}): {error_message}") + logger.error( + f"CF_API_Error:: making request to Codeflash API (url: {url}, method: {method}, status {response.status_code}): {error_message}" + ) return response