diff --git a/packages/opal-server/opal_server/git_fetcher.py b/packages/opal-server/opal_server/git_fetcher.py index 67e1016e9..020ec26b8 100644 --- a/packages/opal-server/opal_server/git_fetcher.py +++ b/packages/opal-server/opal_server/git_fetcher.py @@ -230,6 +230,10 @@ async def _clone(self): ) except pygit2.GitError: logger.exception(f"Could not clone repo at {self._source.url}") + # Fix: Cleanup failed clone directly to prevent "directory not empty" or symlink leftovers + if self._repo_path.exists(): + logger.warning(f"Cleaning up failed clone directory: {self._repo_path}") + shutil.rmtree(self._repo_path) else: logger.info(f"Clone completed: {self._source.url}") await self._notify_on_changes(repo) diff --git a/packages/opal-server/requires.txt b/packages/opal-server/requires.txt index d5adaf2fd..3d3bb35da 100644 --- a/packages/opal-server/requires.txt +++ b/packages/opal-server/requires.txt @@ -4,6 +4,6 @@ gitpython>=3.1.32,<4 pyjwt[crypto]>=2.1.0,<3 slowapi>=0.1.5,<1 # slowapi is stuck on and old `redis`, so fix that and switch from aioredis to redis -pygit2>=1.14.1,<1.15 +pygit2>=1.14.1 asgiref>=3.5.2,<4 redis>=4.3.4,<5