Skip to content

Commit f2f4ce7

Browse files
skip draft pr optimization
1 parent e10630d commit f2f4ce7

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

codeflash/api/cfapi.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,13 @@ def mark_optimization_success(trace_id: str, *, is_optimization_found: bool) ->
235235
"""
236236
payload = {"trace_id": trace_id, "is_optimization_found": is_optimization_found}
237237
return make_cfapi_request(endpoint="/mark-as-success", method="POST", payload=payload)
238+
239+
240+
def get_pr_info(owner: str, repo: str, pr_number: int) -> Any: # noqa
241+
"""Get information about a pull request."""
242+
response = make_cfapi_request(
243+
endpoint=f"/get-pr-info?owner={owner}&repo={repo}&pr_number={pr_number}", method="GET"
244+
)
245+
if response.ok:
246+
return response.json()
247+
return None

codeflash/optimization/optimizer.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
from pathlib import Path
99
from typing import TYPE_CHECKING
1010

11+
from codeflash.api import cfapi
1112
from codeflash.api.aiservice import AiServiceClient, LocalAiServiceClient
1213
from codeflash.cli_cmds.console import console, logger, progress_bar
1314
from codeflash.code_utils import env_utils
1415
from codeflash.code_utils.env_utils import get_pr_number
16+
from codeflash.code_utils.git_utils import get_repo_owner_and_name
1517
from codeflash.either import is_successful
1618
from codeflash.models.models import ValidCode
1719
from codeflash.telemetry.posthog_cf import ph
@@ -86,6 +88,18 @@ def run(self) -> None:
8688
return
8789
if not env_utils.check_formatter_installed(self.args.formatter_cmds):
8890
return
91+
92+
owner, repo = get_repo_owner_and_name()
93+
94+
pr_info = cfapi.get_pr_info(owner, repo, int(get_pr_number()))
95+
if pr_info is None:
96+
logger.warning(f"Could not find {owner}/{repo}#{get_pr_number()}.")
97+
return
98+
is_draft = pr_info["draft"]
99+
if is_draft:
100+
logger.warning("PR is in draft mode, skipping optimization")
101+
return
102+
89103
function_optimizer = None
90104
file_to_funcs_to_optimize: dict[Path, list[FunctionToOptimize]]
91105
num_optimizable_functions: int

0 commit comments

Comments
 (0)