diff --git a/runbot_merge/git.py b/runbot_merge/git.py index 73ad9d73..771a6733 100644 --- a/runbot_merge/git.py +++ b/runbot_merge/git.py @@ -4,6 +4,7 @@ import logging import os import pathlib import resource +import stat import subprocess from typing import Optional, TypeVar, Union, Sequence, Tuple, Dict @@ -41,6 +42,14 @@ def get_local(repository, prefix: Optional[str]) -> 'Optional[Repo]': repo.config('--add', 'remote.origin.fetch', '^refs/heads/tmp.*') repo.config('--add', 'remote.origin.fetch', '^refs/heads/staging.*') return repo + else: + _logger.warning( + "Unable to acquire %s: %s", + repo_dir, + "doesn't exist" if not repo_dir.exists()\ + else oct(stat.S_IFMT(repo_dir.stat().st_mode)) + ) + return None ALWAYS = ('gc.auto=0', 'maintenance.auto=0') diff --git a/runbot_merge/models/crons/git_maintenance.py b/runbot_merge/models/crons/git_maintenance.py index 33262d7e..d392d868 100644 --- a/runbot_merge/models/crons/git_maintenance.py +++ b/runbot_merge/models/crons/git_maintenance.py @@ -25,7 +25,7 @@ class GC(models.TransientModel): # run on all repos with a forwardport target (~ forwardport enabled) for repo in self.env['runbot_merge.repository'].search([]): repo_git = get_local(repo, prefix=None) - if not repo: + if not repo_git: continue _gc.info('Running maintenance on %s', repo.name)