diff --git a/src/codegen/sdk/core/codebase.py b/src/codegen/sdk/core/codebase.py index 735a8b5ea..2c641e655 100644 --- a/src/codegen/sdk/core/codebase.py +++ b/src/codegen/sdk/core/codebase.py @@ -26,6 +26,7 @@ from codegen.configs.models.secrets import SecretsConfig from codegen.git.repo_operator.repo_operator import RepoOperator from codegen.git.schemas.enums import CheckoutResult, SetupOption +from codegen.git.schemas.repo_config import RepoConfig from codegen.git.utils.pr_review import CodegenPR from codegen.sdk._proxy import proxy_property from codegen.sdk.ai.client import get_openai_client @@ -1343,15 +1344,17 @@ def from_repo( repo_path = os.path.join(tmp_dir, repo) repo_url = f"https://github.com/{repo_full_name}.git" logger.info(f"Will clone {repo_url} to {repo_path}") + access_token = secrets.github_token if secrets else None try: # Use RepoOperator to fetch the repository logger.info("Cloning repository...") if commit is None: - repo_operator = RepoOperator.create_from_repo(repo_path=repo_path, url=repo_url) + repo_config = RepoConfig.from_repo_path(repo_path) + repo_config.full_name = repo_full_name + repo_operator = RepoOperator(repo_config=repo_config, access_token=access_token, setup_option=setup_option) else: # Ensure the operator can handle remote operations - access_token = secrets.github_token if secrets else None repo_operator = RepoOperator.create_from_commit(repo_path=repo_path, commit=commit, url=repo_url, full_name=repo_full_name, access_token=access_token) logger.info("Clone completed successfully") diff --git a/tests/integration/codegen/git/codebase/conftest.py b/tests/integration/codegen/git/codebase/conftest.py index a8ab00e4f..4e163c87d 100644 --- a/tests/integration/codegen/git/codebase/conftest.py +++ b/tests/integration/codegen/git/codebase/conftest.py @@ -2,11 +2,12 @@ import pytest +from codegen.git.schemas.enums import SetupOption from codegen.sdk.core.codebase import Codebase @pytest.fixture def codebase(tmpdir): os.chdir(tmpdir) - codebase = Codebase.from_repo(repo_full_name="codegen-sh/Kevin-s-Adventure-Game", tmp_dir=tmpdir, language="python") + codebase = Codebase.from_repo(repo_full_name="codegen-sh/Kevin-s-Adventure-Game", tmp_dir=tmpdir, language="python", setup_option=SetupOption.PULL_OR_CLONE) yield codebase