fix: add default_branch parameter to GitService.init_repo()

Fixed error: GitService.init_repo() got an unexpected keyword argument 'default_branch'

The init_repository route was passing default_branch to GitService.init_repo(),
but the method signature didn't accept this parameter.

Changes:
- Added default_branch: Optional[str] = None parameter to init_repo() method
- Updated clone operation to use specified default branch when provided
- Updated method documentation to reflect the new parameter

This allows repositories to be initialized with a specific default branch
as configured in GitServerConfig, while maintaining backward compatibility.
This commit is contained in:
2026-03-17 14:58:29 +03:00
parent 301a9672f0
commit aaa5f3c076

View File

@@ -319,12 +319,13 @@ class GitService:
# @PARAM: remote_url (str)
# @PARAM: pat (str) - Personal Access Token for authentication.
# @PARAM: repo_key (Optional[str]) - Slug-like key for deterministic folder naming on first init.
# @PARAM: default_branch (Optional[str]) - Default branch name to use (defaults to 'main').
# @PRE: dashboard_id is int, remote_url is valid Git URL, pat is provided.
# @POST: Repository is cloned or opened at the local path.
# @RETURN: Repo - GitPython Repo object.
# @RELATION: CALLS -> [GitService._get_repo_path]
# @RELATION: CALLS -> [GitService._ensure_gitflow_branches]
def init_repo(self, dashboard_id: int, remote_url: str, pat: str, repo_key: Optional[str] = None) -> Repo:
def init_repo(self, dashboard_id: int, remote_url: str, pat: str, repo_key: Optional[str] = None, default_branch: Optional[str] = None) -> Repo:
with belief_scope("GitService.init_repo"):
self._ensure_base_path_exists()
repo_path = self._get_repo_path(dashboard_id, repo_key=repo_key or str(dashboard_id))
@@ -354,7 +355,11 @@ class GitService:
return repo
logger.info(f"[init_repo][Action] Cloning {remote_url} to {repo_path}")
repo = Repo.clone_from(auth_url, repo_path)
# Use default_branch if specified, otherwise let GitPython use the remote's default
clone_kwargs = {}
if default_branch:
clone_kwargs['branch'] = default_branch
repo = Repo.clone_from(auth_url, repo_path, **clone_kwargs)
self._ensure_gitflow_branches(repo, dashboard_id)
return repo
# [/DEF:backend.src.services.git_service.GitService.init_repo:Function]