From 452a12892e645b6cd8d42f63904fa1dd357c77b0 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 16 Sep 2025 12:01:01 -0500 Subject: [PATCH] fix reg --- esphome/components/external_components/__init__.py | 7 ++++--- esphome/git.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/esphome/components/external_components/__init__.py b/esphome/components/external_components/__init__.py index 5362a2269f..6b7754f2f4 100644 --- a/esphome/components/external_components/__init__.py +++ b/esphome/components/external_components/__init__.py @@ -17,7 +17,7 @@ from esphome.const import ( TYPE_GIT, TYPE_LOCAL, ) -from esphome.core import CORE +from esphome.core import CORE, TimePeriodSeconds _LOGGER = logging.getLogger(__name__) @@ -40,8 +40,9 @@ async def to_code(config): def _process_git_config(config: dict, refresh, skip_update: bool = False) -> str: - # When skip_update is True, set refresh to None to prevent updates - actual_refresh = None if skip_update else refresh + # When skip_update is True, set a very large refresh value to prevent updates + # Using 100 years in seconds to effectively disable refresh + actual_refresh = TimePeriodSeconds(days=36500) if skip_update else refresh repo_dir, _ = git.clone_or_update( url=config[CONF_URL], ref=config.get(CONF_REF), diff --git a/esphome/git.py b/esphome/git.py index c60b928d7c..56aedd1519 100644 --- a/esphome/git.py +++ b/esphome/git.py @@ -90,7 +90,7 @@ def clone_or_update( if not file_timestamp.exists(): file_timestamp = Path(repo_dir / ".git" / "HEAD") age = datetime.now() - datetime.fromtimestamp(file_timestamp.stat().st_mtime) - if refresh is not None and age.total_seconds() > refresh.total_seconds: + if refresh is None or age.total_seconds() > refresh.total_seconds: old_sha = run_git_command(["git", "rev-parse", "HEAD"], str(repo_dir)) _LOGGER.info("Updating %s", key) _LOGGER.debug("Location: %s", repo_dir)