From d094d7a974c56028d559d2002dc6c576079b0bb6 Mon Sep 17 00:00:00 2001 From: BoYanZh Date: Sat, 22 Mar 2025 17:14:25 -0400 Subject: [PATCH] feat: default branch as config field --- joint_teapot/config.py | 1 + joint_teapot/teapot.py | 2 +- joint_teapot/workers/git.py | 19 ++++++++++++++----- joint_teapot/workers/gitea.py | 8 ++++---- 4 files changed, 20 insertions(+), 10 deletions(-) diff --git a/joint_teapot/config.py b/joint_teapot/config.py index 3855f67..2a2f1a0 100644 --- a/joint_teapot/config.py +++ b/joint_teapot/config.py @@ -25,6 +25,7 @@ class Settings(BaseSettings): # git git_host: str = "ssh://git@focs.ji.sjtu.edu.cn:2222" repos_dir: str = "./repos" + default_branch: str = "master" # mattermost mattermost_domain_name: str = "focs.ji.sjtu.edu.cn" diff --git a/joint_teapot/teapot.py b/joint_teapot/teapot.py index e838042..ca91f33 100644 --- a/joint_teapot/teapot.py +++ b/joint_teapot/teapot.py @@ -114,7 +114,7 @@ class Teapot: def clone_all_repos(self) -> None: for i, repo_name in enumerate(self.gitea.get_all_repo_names()): logger.info(f"{i}, {self.gitea.org_name}/{repo_name} cloning...") - self.git.repo_clean_and_checkout(repo_name, "master") + self.git.repo_clean_and_checkout(repo_name, settings.default_branch) def create_issue_for_repos( self, diff --git a/joint_teapot/workers/git.py b/joint_teapot/workers/git.py index 42d6c8e..858664c 100644 --- a/joint_teapot/workers/git.py +++ b/joint_teapot/workers/git.py @@ -35,7 +35,10 @@ class Git: logger.info(f"repos dir: {self.repos_dir}") def clone_repo( - self, repo_name: str, branch: str = "master", auto_retry: bool = True + self, + repo_name: str, + branch: str = settings.default_branch, + auto_retry: bool = True, ) -> Optional[Repo]: repo = None repo_dir = os.path.join(self.repos_dir, repo_name) @@ -78,7 +81,7 @@ class Git: *, auto_retry: bool = True, clean_git_lock: bool = False, - reset_target: str = "origin/master", + reset_target: str = f"origin/{settings.default_branch}", ) -> str: repo_dir = os.path.join(self.repos_dir, repo_name) repo = self.get_repo(repo_name) @@ -115,11 +118,17 @@ class Git: sleep(retry_interval) if retry_interval < 64: retry_interval *= 2 - elif "Remote branch master not found in upstream origin" in e.stderr: + elif ( + f"Remote branch {settings.default_branch} not found in upstream origin" + in e.stderr + ): retry_interval = 0 - logger.error(f"{repo_name} origin/master not found") + logger.error( + f"{repo_name} origin/{settings.default_branch} not found" + ) else: - raise + retry_interval = 0 + logger.exception(e) return repo_dir def add_commit( diff --git a/joint_teapot/workers/gitea.py b/joint_teapot/workers/gitea.py index e115326..36ff7ed 100644 --- a/joint_teapot/workers/gitea.py +++ b/joint_teapot/workers/gitea.py @@ -126,7 +126,7 @@ class Gitea: repo_names.append(repo_name) body = { "auto_init": False, - "default_branch": "master", + "default_branch": settings.default_branch, "name": repo_name, "private": True, "template": False, @@ -198,7 +198,7 @@ class Gitea: self.org_name, body={ "auto_init": False, - "default_branch": "master", + "default_branch": settings.default_branch, "name": repo_name, "private": True, "template": False, @@ -236,7 +236,7 @@ class Gitea: continue try: self.repository_api.repo_delete_branch_protection( - self.org_name, repo_name, "master" + self.org_name, repo_name, settings.default_branch ) except ApiException as e: if e.status != 404: @@ -249,7 +249,7 @@ class Gitea: "block_on_official_review_requests": True, "block_on_outdated_branch": True, "block_on_rejected_reviews": True, - "branch_name": "master", + "branch_name": settings.default_branch, "dismiss_stale_approvals": True, "enable_approvals_whitelist": False, "enable_merge_whitelist": False,